选择2 - 未找到匹配项时禁用提交按钮

时间:2014-02-03 22:45:51

标签: jquery jquery-select2

我正在使用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>

非常感谢任何帮助。

2 个答案:

答案 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";