如果选择的值是' 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
答案 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)
您的代码中存在大量不同的语法和逻辑错误。以下是固定版本的片段。
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