Как перебирать только элементы текстового поля в форме, используя jquery - PullRequest
0 голосов
/ 17 августа 2010

У меня есть форма, которая содержит 4 текстовых поля при нажатии кнопки мы должны увидеть, что по крайней мере одно текстовое поле должно содержать значение, а форма должна быть отправлена и форма также содержит кнопку, которая типа ввода тоже. Я хочу только значения поля текстового поля

$("#mybutton").click(function(){

$(":input").each(function(){
  if($(this).value!=''){
    $("#myform").submit();

 }

});
});

Ответы [ 4 ]

6 голосов
/ 17 августа 2010

Вы можете использовать :text для селектора, .filter() до тех, которые имеют значение, и отметьте .length, как это :

$("#mybutton").click(function(){
  if($(":text").filter(function(){ return this.value!=''; }).length)
    $("#myform").submit();
});

это проверяет, являются ли любые не пустыми, и, если это так, отправляет форму один раз.


А вот альтернатива, которая проверяет отправку <form>, комплименты комментария Дуга:

$("#myform").submit(function(){
  if(!$(":text").filter(function(){ return this.value!=''; }).length)
    return false;
});
3 голосов
/ 17 августа 2010

Во-первых, привязка к form отправить не нажатием кнопки. Если пользователь нажмет enter/return в поле, он отправит вашу форму без проверок:

$("form").submit(function (e) {
  var fields = $(this).find(':text'),
      cancel = true;

  fields.each(function (i, el) {
    if (el.value) {
      cancel = false;
      return false; // exit this loop
    }
  });

  if (cancel) {
    e.preventDefault(); // cancel submit since all fields are blank
  }      
});
1 голос
/ 17 августа 2010

Используйте селектор input:text, чтобы получить все текстовые поля.

$("input:text")
1 голос
/ 17 августа 2010

Попробуйте это. Я заменил ваш :input селектор на :text, чтобы получать только текстовые поля. Также вы вызывали .value для объекта jquery вместо использования метода .val().

$("#mybutton").click(function() {
    $(":text").each(function() {
        if($(this).val() !='') {
            $("#myform").submit();
            return false;
        }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...