我喜欢这个网站,并且能够向大家学习很多东西。但是,这是一个我找不到答案的问题:
我有一个带有“选择”下拉列表和一个“输入”字段(均需填写)和一个禁用的“提交”按钮的迷你表单。我的客户需要禁用/显示灰色按钮,直到这两个字段都被填充,但是我无法执行该操作。
到目前为止,我提供的代码仅适用于Input。我试图在初始函数中并入“ ($('#selectBox')。on('change',function(){”)以向“选择”字段发送信号,但是它破坏了所有内容,我没有不知道要去哪里。
我认为不是让字段独立地工作(就像我似乎一直在做的那样),我认为每个字段都需要在JQuery代码内相互反弹/读取,以判断每个字段都有一个有效值。但是我一直在努力寻找联系(我对JS / JQ还是很陌生-如果错误,请原谅我的无知)。
我到处都在寻找解决方案,但是我没有运气找到答案。如果我错过了可以帮助我的链接或上一个问题,请告诉我,谢谢您的见解!
https://jsfiddle.net/jdraeger/2w68qs0y/2/
$(function() {
$('#searchInput').keyup(function() {
if ($(this).val() == '') {
$('.enableOnInput').prop('disabled', true);
} else {
$('.enableOnInput').prop('disabled', false);
}
});
})
<body>
<div id='frame'>
<div class='search'>
<form method='post'>
<select id="selectBox" class="selectBox" required>
<option value="">--Select--</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<input type='text' name='searchQuery' id='searchInput' required/>
<input type='submit' name='submit' id='submitBtn' class='enableOnInput' disabled='disabled' />
</form>
</div>
</div>
</body>
答案 0 :(得分:0)
两个字段和两个事件...
您可以为此编写一个“处理程序”。只需使用.on()
方法,该方法就可以绑定许多事件(此处为keyup
和change
)。然后,在比较中,检查两个值。如果一个或另一个为空,请禁用该按钮。
$(function() {
$('#searchInput, #selectBox').on('keyup change',function() {
if ($('#searchInput').val() == '' || $('#selectBox').val() == '') {
$('.enableOnInput').prop('disabled', true);
} else {
$('.enableOnInput').prop('disabled', false);
}
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<div id='frame'>
<div class='search'>
<form method='post'>
<select id="selectBox" class="selectBox" required>
<option value="">--Select--</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<input type='text' name='searchQuery' id='searchInput' required/>
<input type='submit' name='submit' id='submitBtn' class='enableOnInput' disabled='disabled' />
</form>
</div>
</div>
</body>
通过将条件直接放在.prop()
的true / false第二个参数中,甚至可以写得更短:
$(function() {
$('#searchInput, #selectBox').on('keyup change',function() {
$('.enableOnInput').prop('disabled', ($('#searchInput').val() == '' || $('#selectBox').val() == ''));
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<div id='frame'>
<div class='search'>
<form method='post'>
<select id="selectBox" class="selectBox" required>
<option value="">--Select--</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<input type='text' name='searchQuery' id='searchInput' required/>
<input type='submit' name='submit' id='submitBtn' class='enableOnInput' disabled='disabled' />
</form>
</div>
</div>
</body>
答案 1 :(得分:0)
您可以通过创建一个新功能来实现此功能,该功能将启用您的提交按钮,并在文本输入字段更改或选择字段更改时被调用
$('#selectBox','#searchInput').on('change', function() {
enablingFunction();
});
function enablingFunction(){
if($('#selectBox').val() != "" && $('#searchInput').val() != ""){
$('#submitBtn').prop("disabled", false);
}
}