我有许多输入表格列表并选择过滤器选项。检查这些字段中是否有内容的目标(例如输入不是空的,并且选择了选项)。我无法理解如何使它与更多的这些元素之一一起工作,因为现在如果两个输入具有值并且一个输入来清除它,则将按钮设置为禁用,尽管其中一个输入具有值。帮助我处理它。检查输入和选择是否为空,并启用按钮
function buttonStatus() {
var buttonDisable = function(){
$('input[type="submit"]').attr('disabled', true)
},
buttonEnable = function(){
$('input[type="submit"]').attr('disabled', false);
}
$('input').on('keyup change', function(){
var inputText = $.trim($('input').val())
if(inputText.length > 0 || $('select option').is(':selected') && $('select option:selected').val() != 0) {
buttonEnable()
}
else {
buttonDisable()
}
})
$('select').on('keyup change', function(){
if ($('option').is(':selected') && $('option:selected').val() != 0 || $.trim($('input').val()).length > 0) {
buttonEnable()
}
else {
buttonDisable()
}
})
}
buttonStatus()
* {
box-sizing: border-box;
}
div {
margin: 50px;
}
input[type="submit"] {
background: green;
border: none;
padding: 5px;
color: #fff;
}
input[type="submit"][disabled] {
background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input type="text" />
<input type="text" />
<select>
<option value="0"></option>
<option value="1">Nigeria</option>
<option value="2">Kenya</option>
<option value="3">Tanzania</option>
<option value="4">Uganda</option>
<option value="5">Ethiopia</option>
<option value="6">Mozambique</option>
</select>
<select>
<option value="0"></option>
<option value="1">Nigeria</option>
<option value="2">Kenya</option>
<option value="3">Tanzania</option>
<option value="4">Uganda</option>
<option value="5">Ethiopia</option>
<option value="6">Mozambique</option>
</select>
<input type="submit" disabled>
</div>
如果我明白你需要得到什么,你的解决方案是使用'$(this)'来知道你的目标是什么元素。你可以这样做:'var inputText = $ .trim($(this).val())'。问题出在'$('select')'中,因为'$(this)'是select,而不是输入。如果你在输入标签中输入一个类名或一个id(两者不同),这是最简单的。 –
$(this)有一点帮助。 – NeedHate
我不得不对马科斯刚才所说的内容发表双重评论。在函数()中,你用$(this)获得当前目标;这是目前的范围。你也可以通过函数传递一个事件“e”;示例函数(e){...}。当试图写这样的验证时,命名和识别所有内容都容易得多。这样你就可以精确地选出你想要检查的输入/选择。 – jjwdesign