JQuery отправить форму для проверки пустых полей
Как я могу использовать jQuery, чтобы проверить, являются ли текстовые поля пустыми при отправке без загрузки login.php
?
<form action="login.php" method="post">
<label>Login Name:</label>
<input type="text" name="email" id="log" />
<label>Password:</label>
<input type="password" name="password" id="pwd" />
<input type="submit" name="submit" value="Login" />
</form>
Спасибо.
Ответы
Ответ 1
Вы можете сделать это:
// Bind the event handler to the "submit" JavaScript event
$('form').submit(function () {
// Get the Login Name value and trim it
var name = $.trim($('#log').val());
// Check if empty of not
if (name === '') {
alert('Text-field is empty.');
return false;
}
});
FIDDLE DEMO
Ответ 2
Вы можете использовать 'required' http://jsbin.com/atefuq/1/edit
<form action="login.php" method="post">
<label>Login Name:</label>
<input required type="text" name="email" id="log" />
<label>Password:</label>
<input required type="password" name="password" id="pwd" />
<input required type="submit" name="submit" value="Login" />
</form>
Ответ 3
Простым решением будет что-то вроде этого
$( "form" ).on( "submit", function() {
var has_empty = false;
$(this).find( 'input[type!="hidden"]' ).each(function () {
if ( ! $(this).val() ) { has_empty = true; return false; }
});
if ( has_empty ) { return false; }
});
Примечание. Метод jQuery.on()
доступен только в версии jQuery версии 1.7+, но теперь это предпочтительный метод привязки обработчиков событий.
Этот код пропускает все входы в форме и предотвращает отправку формы, возвращая значение false, если какое-либо из них не имеет значения. Обратите внимание, что он не отображает пользователю какое-либо сообщение о том, почему форма не была отправлена (я бы настоятельно рекомендовал добавить ее).
Или вы можете посмотреть плагин jQuery validate. Он делает это и многое другое.
NB: этот тип техники всегда должен использоваться в сочетании с проверкой на стороне сервера.
Ответ 4
вам нужно добавить обработчик в форму submit. В обработчике вам нужно проверить каждое текстовое поле, выбрать поля элемента и пароля, если значения не пусты.
$('form').submit(function() {
var res = true;
// here I am checking for textFields, password fields, and any
// drop down you may have in the form
$("input[type='text'],select,input[type='password']",this).each(function() {
if($(this).val().trim() == "") {
res = false;
}
})
return res; // returning false will prevent the form from submitting.
});
Ответ 5
Я действительно ненавижу формы, которые не говорят мне, какие данные отсутствуют/отсутствуют.
Поэтому я улучшаю ответ Доминика - спасибо за это.
В css файле установите для класса borderR значение border.
$('#<form_id>').submit(function () {
var allIsOk = true;
// Check if empty of not
$(this).find( 'input[type!="hidden"]' ).each(function () {
if ( ! $(this).val() ) {
$(this).addClass('borderR').focus();
allIsOk = false;
}
});
return allIsOk
});
Ответ 6
вы должны попробовать с помощью jquery validate plugin:
$('form').validate({
rules:{
email:{
required:true,
email:true
}
},
messages:{
email:{
required:"Email is required",
email:"Please type a valid email"
}
}
})
Ответ 7
function isEmpty(val) {
if(val.length ==0 || val.length ==null){
return 'emptyForm';
}else{
return 'not emptyForm';
}
}
$(document).ready(function(){enter code here
$( "form" ).submit(function( event ) {
$('input').each(function(){
var getInputVal = $(this).val();
if(isEmpty(getInputVal) =='emptyForm'){
alert(isEmpty(getInputVal));
}else{
alert(isEmpty(getInputVal));
}
});
event.preventDefault();
});
});
Ответ 8
var save_val = $("form").serializeArray();
$(save_val).each(function( index, element ) {
alert(element.name);
alert(element.val);
});