Javascript 如果克隆的select具有特定值,则使输入字段可见

Javascript 如果克隆的select具有特定值,则使输入字段可见,javascript,jquery,html,Javascript,Jquery,Html,我是JQuery新手,也没有密歇根州的Javascript经验。 我的目标是允许用户添加一个select元素,如果他需要更多的元素,并且如果他选择了一个特定的选项来在它旁边显示另一个输入字段。我使克隆工作正常,但无法显示输入字段。 我的HTML: 参数: 朗 行动 模式 其他。。。 - 如果选择了“其他…”选项,我想使类“params”的输入可见。 到目前为止,我的JQuery: $(function(){ var i = 1; // Add a clone $('#add

我是JQuery新手,也没有密歇根州的Javascript经验。 我的目标是允许用户添加一个select元素,如果他需要更多的元素,并且如果他选择了一个特定的选项来在它旁边显示另一个输入字段。我使克隆工作正常,但无法显示输入字段。 我的HTML:



参数: 朗 行动 模式 其他。。。 -
如果选择了“其他…”选项,我想使类“params”的输入可见。 到目前为止,我的JQuery:

$(function(){
  var i = 1;

  // Add a clone
  $('#addField').click(function(){
    if(i < 6){
      $(".wrap").clone().attr('class','wrap'+i).appendTo(".right");
      $(".wrap"+i).children("select").attr('id','link_'+i);
      $(".wrap"+i).children("a").attr('style','display: inline;');
      $(".wrap"+i).children("input.params").attr('id','i_wrap'+i);
    }
    i++;
    return false;
   });

   // Remove a clone
   $(document).on('click', '.remove', function(e){
    $(this).parent().remove();
    i--;
   });

   // Make the input visible
   $("select").change(function(){
     parentID = $(this).parent().attr('class');
     if ($(this).val() === 'other'){ 
       $('.i_'+parentID).show();   
     } else {
       $('.i_'+parentID).hide(); 
     }
   });
});
$(函数(){
var i=1;
//添加克隆
$('#addField')。单击(函数(){
如果(i<6){
$(“.wrap”).clone().attr('class','wrap'+i).appendTo(“.right”);
$(“.wrap”+i).children(“select”).attr('id','link_'+i);
$(“.wrap”+i).children(“a”).attr('style','display:inline;');
$(“.wrap”+i.children(“input.params”).attr('id','i_wrap'+i);
}
i++;
返回false;
});
//删除克隆
$(文档).on('click','remove',函数(e){
$(this.parent().remove();
我--;
});
//使输入可见
$(“选择”).change(函数(){
parentID=$(this.parent().attr('class');
如果($(this.val()=='other'){
$('.i'+parentID).show();
}否则{
$('.i'+parentID).hide();
}
});
});
我的目标是将onchange绑定到每个select元素,但到目前为止没有任何元素响应


< P>我会考虑以下变化:

function additionalField() {
    parentID = $(this).parent().attr('class');
    if ($(this).val() === 'other') {
      $(this).parent().find('input.params').show();
    } else {
      $(this).parent().find('input.params').hide();
    }
  }

// Make the input visible
$(document).off("change", 'select', additionalField);
$(document).on("change", 'select', additionalField);

我会考虑下面的变化:

function additionalField() {
    parentID = $(this).parent().attr('class');
    if ($(this).val() === 'other') {
      $(this).parent().find('input.params').show();
    } else {
      $(this).parent().find('input.params').hide();
    }
  }

// Make the input visible
$(document).off("change", 'select', additionalField);
$(document).on("change", 'select', additionalField);

另一种方法是稍微更改您的函数: $("select").change(function(){

TO:

$(document).on('change', "select", function(){
  parentID = $(this).parent().find('.params');
  if ($(this).val() === 'other'){
    parentID.show();
  } else {
    parentID.hide();
  }
});

另一种方法是稍微更改您的函数: $("select").change(function(){

TO:

$(document).on('change', "select", function(){
  parentID = $(this).parent().find('.params');
  if ($(this).val() === 'other'){
    parentID.show();
  } else {
    parentID.hide();
  }
});

努贝德的答案是不正确的。如果一个字段已设置为另一个字段,则所有“参数”字段都将显示

您希望获取与所选内容相关的输入

$(document).on("change", 'select', function() {
  if ($(this).val() === 'other') {
    $(this).next().show();
  } else {
    $(this).next().hide();
  }
});

努贝德的答案不正确。如果一个字段已设置为另一个字段,则所有“参数”字段都将显示

您希望获取与所选内容相关的输入

$(document).on("change", 'select', function() {
  if ($(this).val() === 'other') {
    $(this).next().show();
  } else {
    $(this).next().hide();
  }
});

为了清楚地了解问题,您愿意接受答案吗others@JamieBarker我会把它修好的,但至少我现在知道怎么做了。你会接受这个答案吗?为了让我清楚others@JamieBarker我会修好的,但至少我现在知道怎么做了