我正在使用Select2查询数据库并返回值。当用户键入不在列表中的值时,将显示找不到匹配项的消息。当发生这种情况时,我还想禁用提交按钮,以便无法提交表单。
<form>
<input id="select2" type="hidden" name="optionvalue" />
<input type="submit" value="Search" />
</form>
<script>
$(document).ready(function(){
$('#select2').select2({
ajax: {
url: "selections.php",
dataType: 'json',
data: function (term, page) {
return {
q: term
};
},
results: function (data, page) {
return { results: data };
}
}
});
});
</script>
非常感谢任何帮助。
答案 0 :(得分:1)
您可以做的是将返回数据设置为变量,并检查结果是否存在,然后,如果没有结果返回(空变量),请禁用提交按钮。首先,为您的提交按钮添加一个ID,例如subBtn
$(document).ready(function(){
$('#select2').select2({
ajax: {
url: "selections.php",
dataType: 'json',
data: function (term, page) {
if (!term) {
$("#subBtn").prop("disabled",true);
} else {
$("#subBtn").prop("disabled",false);
}
return {
q: term
};
},
results: function (data, page) {
return { results: data };
}
}
});
});
答案 1 :(得分:1)
我会说你可以用简单的javascript说:
function disable_button(buttonid) {
document.getElementById(buttonid).style.display = "none";
然后使用这样的函数:
disable_button(select2);
这将隐藏按钮,因此无法再点击它。您可以编写一个将再次显示按钮的功能,如:
.style.display = "block";