2014-02-03 2 views
0

Я использую 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> 

Любая помощь очень ценится.

ответ

1

Что вы можете сделать, это установить возвращаемые данные в переменную и проверить, существуют ли результаты, а затем, если результаты не возвращаются (пустая переменная), отключите кнопку отправки. Во-первых, дать вашему кнопку отправить идентификатор, скажем 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 }; 
      } 
     } 
    }); 
}); 
+0

Это не работает. Кнопка будет отключена, как только будет нажата кнопка выбора, и она будет отключена после выбора предложения. – WhoMe

1

Я бы сказал, что вы могли бы использовать простой JavaScript, чтобы сказать:

function disable_button(buttonid) { 
document.getElementById(buttonid).style.display = "none"; 

Затем используйте функцию следующим образом:

disable_button(select2); 

Это скроет кнопку, чтобы ее больше не нажимали. Вы можете написать функцию, которая снова покажет кнопку:

.style.display = "block"; 
+0

Вам не нужно скрывать кнопку, вы можете просто отключить ее, если хотите, чтобы она все еще была видна. –

Смежные вопросы