#javascript #jquery
#javascript #jquery
Вопрос:
Я работаю над формой, но я хочу остановить форму, если длина четырех входных данных равна 0, но у меня есть то, что форма отправляется до того, как она вызовет e.preventDefault() . что я могу с этим сделать, чтобы проверить ввод формы перед ее отправкой.
$('#job_in').click(function()
//form1.submit(function(e) // testing the form input
{
form1_name=$("input[data='form1_name']");
form1_email=$("input[data='form1_email']");
form1_pass=$("input[data='form1_pass']");
form1_sex=$("select[data='form1_sex']");
form1_cname=$("input[data='form1_cname']");
form1_checkbox=$("input[data='form1_checkbox']");
ceo_inputs_dis=[/* 0 */form1_name,/* 1 */form1_email, /* 2 */form1_pass,
/* 3 */form1_sex, /* 4 */form1_cname];
ceo_inputs_dis1=ceo_inputs_dis[0];
ceo_inputs_dis2=ceo_inputs_dis[1];
ceo_inputs_dis3=ceo_inputs_dis[2];
ceo_inputs_dis4=ceo_inputs_dis[3];
ceo_inputs_dis5=ceo_inputs_dis[4];
ceo_inputs_dis1=ceo_inputs_dis1.val().length;
ceo_inputs_dis2=ceo_inputs_dis2.val().length;
ceo_inputs_dis3=ceo_inputs_dis3.val().length;
ceo_inputs_dis4=ceo_inputs_dis4.val().length;
ceo_inputs_dis5=ceo_inputs_dis5.val().length;
/* do the check for name input */
if ( (ceo_inputs_dis1 == 0) || (ceo_inputs_dis2 == 0) ||
(ceo_inputs_dis3 == 0) || (ceo_inputs_dis4 == 0) ||
(ceo_inputs_dis5 == 0)
)
{
//<h6 id="alertmsg">All fields are important!</h6>
$('#alertmsg').text("Please all the four fields are empty");
/* disable the form */
forms=$('form');
form1=forms[0];
e.preventDefault();
/*form1.submit(function (e)
{
//e.preventDefault();
return false;
});*/
/*form1.submit(function()
{
return false;
});*/
};
});
Комментарии:
1. что такое элемент #job_in ??
2. элемент #job_in — это кнопка отправки…
3. Я думаю, вы даже не передаете ‘e’, который, как я полагаю, используется в e.preventDefault();
Ответ №1:
Используйте submit
событие.
$('#job_in').submit(function() {
...
})
Или измените <button type="submit">Submit</button>
на <button type="button">Submit</button>
. И в событии щелчка form1.submit()
.