2013-05-28 2 views
0

Вот мой код:Проверка формы с помощью jQuery.click не работает

$('input#price_match_submit').click(function(event) { 
     if ($.trim($('input#price_match_competitor_price').val()) == '') { 
      alert("Please enter competitor's price."); 
      return false; 
     } 
     if ($.trim($('input#price_match_name').val()) == '') { 
      alert("Please enter your name."); 
      return false; 
     } 
     if ($.trim($('input#price_match_quantity').val()) == '') { 
      alert("Please enter the quantity."); 
      return false; 
     } 
     if ($.trim($('input#price_match_email').val()) == '') { 
      alert("Please enter your email address."); 
      return false; 
     } 
     if ($.trim($('input#price_match_competitor_website').val()) == '') { 
      alert("Please enter competitor's website."); 
      return false; 
     } 
     if ($.trim($('input#price_match_phone_number').val()) == '') { 
      alert("Please enter your phone number."); 
      return false; 
     } 
    }); 

Здесь #price_match_submit есть кнопка отправить. Когда я нажимаю кнопку, эта функция должна выполнять и проверять форму. Но он не работает, как я ожидаю. Форма отправляется без какой-либо проверки. Где я поступаю неправильно?

+0

Пожалуйста, покажите свой 'HTML', чтобы мы могли его протестировать. Fiddle поможет нам больше решить вашу проблему. –

+0

Вы можете отправить код кнопки? –

+0

Функция щелчка не работает, потому что это не предотвращает отправку по умолчанию. Поэтому использовать на submit не кликнуть. – Rajiv007

ответ

-1

Благодарим вас за все ваши ответы и комментарии.

Этот код работает нормально. Была проблема с другими частями кода.

Когда мы назначаем функцию элементу, функция присваивается только этому физическому элементу. Но когда мы делаем некоторую физическую модификацию элементов, все ее предыдущие свойства теряются. В моем коде я показывал этот html в модальном всплывающем окне. Который копировал html вместо того, чтобы использовать одни и те же элементы. Таким образом, он потерял эту привязку к функции. И именно по этой причине этот код не работал.

0

Вы можете вместо этого хотите, чтобы вклиниться в случае представить родительской формы и нужно изменить поведение по умолчанию:

$('#form').on('submit', function (e) { 
    if (everything_failed) { 
     e.preventDefault(); 
     return false; 
    } 
}); 

возвращение ложным; Я думаю, только останавливает событие пузыря.

0

Вы можете проверить, как этот

$('form').on('submit', function() { 
// do validation here 
     if ($.trim($('input#price_match_competitor_price').val()) == '') { 
     alert("Please enter competitor's price."); 
     return false; 
    } 
    if ($.trim($('input#price_match_name').val()) == '') { 
     alert("Please enter your name."); 
     return false; 
    } 
    if ($.trim($('input#price_match_quantity').val()) == '') { 
     alert("Please enter the quantity."); 
     return false; 
    } 
    if ($.trim($('input#price_match_email').val()) == '') { 
     alert("Please enter your email address."); 
     return false; 
    } 
    if ($.trim($('input#price_match_competitor_website').val()) == '') { 
     alert("Please enter competitor's website."); 
     return false; 
    } 
    if ($.trim($('input#price_match_phone_number').val()) == '') { 
     alert("Please enter your phone number."); 
     return false; 
    } 
}); 

возвращение ложным, если не подтверждено.

0
$(#price_match_submit').click(function(event) { 
    if ($.trim($('input#price_match_competitor_price').val()) == '') { 
     alert("Please enter competitor's price."); 
     event.preventDefault(); 
    } 
    else if ($.trim($('input#price_match_name').val()) == '') { 
     alert("Please enter your name."); 
     event.preventDefault(); 
    } 
    else if ($.trim($('input#price_match_quantity').val()) == '') { 
     alert("Please enter the quantity."); 
     event.preventDefault(); 
    } 
    else if ($.trim($('input#price_match_email').val()) == '') { 
     alert("Please enter your email address."); 
     event.preventDefault(); 
    } 
    else if ($.trim($('input#price_match_competitor_website').val()) == '') { 
     alert("Please enter competitor's website."); 
     event.preventDefault(); 
    } 
    else if ($.trim($('input#price_match_phone_number').val()) == '') { 
     alert("Please enter your phone number."); 
     event.preventDefault(); 
    } 

    // if nothing happened until now, the form will be submited 
}); 
Смежные вопросы