Проблемы с отправкой формы на моей странице

#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() .