选择值的多个条件

时间:2014-04-18 22:27:03

标签: jquery

如果选择的值是' A'我需要显示一个文本框。或者' B'并且文本框不可见,我不想继续插入文本框 - 我只需要一个。如果所选选项是其他选项,我需要删除文本框。使用下面的代码,当我选择" B"它复制文本框,但选择" A"将删除它......

<select id="mySelect">
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
</select>

$('#mySelect').on('change', funciton() {
   if($(this).val() == 'A' || $(this).val() == 'B' && ('#myTextInput").length < 0 {
       $('input[type="text" id="myTextInput"]).insertAfter('#mySelect');
   } else {
       $('#myTextInput').remove();
    }
)};

这是一个fiddle

4 个答案:

答案 0 :(得分:1)

关键字是括号/括号!

自:

($(this).val() == 'A' || $(this).val() == 'B' && ('#myTextInput').length < 0

要:

(($(this).val() == 'A' || $(this).val() == 'B') && ('#myTextInput').length < 0)

答案 1 :(得分:0)

试试这个:

if( 
    ( $(this).val() == 'A' || $(this).val() == 'B') 
    && 
    $('#myTextInput').length < 0
   ) 
 {
 //....//

请注意您的括号和逻辑运算的顺序。

答案 2 :(得分:0)

您的代码中存在许多错误,修复如下:

$('#mySelect').on('change', function() {
   if(($(this).val() == 'A' || $(this).val() == 'B') && $('#myTextInput').length < 0 {
       $('#myTextInput').insertAfter('#mySelect');
   } else {
       $('#myTextInput').remove();
    }
)};

答案 3 :(得分:0)

您的代码中存在大量不同的语法和逻辑错误。以下是固定版本的片段。

  • 您输入的ID为myText,但您正在寻找#myTextInput
  • 您将)功能的结束.on()放在错误的位置
  • 您在$
  • 之前忘记了('#myText')
  • 您错误拼写function功能
  • 您正在寻找永远是假的$('#myText').length < 0,因为当length不存在时0将为$('#mySelect').on("change", function() { var myTextInput = '<input type="text" id="myText">'; if (($(this).val() == 'A' || $(this).val() == 'B') && ($('#myText').length <= 0)) { $(myTextInput).insertAfter('#mySelect'); } else { $('#myText').remove(); } });

我认为就是这样。

您用什么来编写代码?我建议你使用支持javascript的IDE。它会使大多数这些错误很容易被发现。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="mySelect">
  <option value="">Please Select</option>
  <option value="A">A</option>
  <option value="B">B</option>
  <option value="C">C</option>
  <option value="D">D</option>
</select>
Testing verification ... Failure
Testing encryption ... Failure
Testing decryption ... Success