JQuery, папярэджанне пры спробе адправіць пустое поле ў форме

Я ўпэўнены, што я павінен прапусціць нешта сапраўды відавочнае, але не магу за жыццё мне ўбачыць, што гэта такое.

У мяне ёсць ніжэй JavaScript, што (у тэорыі) выглядае ў форме, калі я націскаю адправіць, і кажа мне, калі я пакінуў поле «Код спасылкі» пустым (у канчатковым выглядзе будуць розныя поля, каб праверыць, так што я выкарыстаў клас = "патрабуецца», каб ідэнтыфікаваць іх усе). Але да гэтага часу, калі я націскаю ўявіць, нічога не адбываецца (за выключэннем адпраўкі формы з якія адсутнічаюць дадзенымі).

Я спрабаваў розныя варыянты, якія я знайшоў у Інтэрнэце, і гэта здавалася найбольш перспектыўнымі.

Калі хто-то можа ўбачыць тое, што я зрабіў няправільна, гэта было б вельмі ўдзячны.

<html>
<head>
    <script language="JavaScript" src="jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        function submitForm()
        {
            $("#Form1").submit(function()
                {
                    $('.required input').each(function() 
                        {
                            if ($(this).val() == '') 
                                {   
                                    $(this).addClass('highlight');
                                }
                        }
                    );

                    if ($('.required input').hasClass('highlight')) 
                        {
                            alert("Please fill in a Ref Number and try again");
                            return false;
                        }
                }   
            );
        }
    </script>
</head>
<body>

    <form method="POST" action="test9.php" name="Form1" ID="Form1">
        <input TYPE="text" ID="RefNo" NAME="RefNo" VALUE="" size="25px" class="required">

        

        
<input type="submit" Name="submit" id="submitButton" value="Report History" onClick='submitForm()'> </form> </body>
1
Але вы ўсё роўна павінны ведаць, як зрабіць гэта без гэтага атрыбуту для людзей, якія не выкарыстоўваюць у сумяшчальны браўзэр HTML5.
дададзена аўтар krillgar, крыніца
Але вы ўсё роўна павінны ведаць, як зрабіць гэта без гэтага атрыбуту для людзей, якія не выкарыстоўваюць у сумяшчальны браўзэр HTML5.
дададзена аўтар krillgar, крыніца
На самай справе карыстальнікі не заўсёды ёсць выбар на якой браўзэр яны выкарыстоўваюць з-за правілы работы/школы, і яны могуць мець толькі стары браўзэр, які не падтрымлівае html5
дададзена аўтар Joe W, крыніца
вау - html5 «патрабуецца» толькі што зрабіў маё жыццё нашмат прасцей (большасць з таго, што я раблю, гэта ўнутраная кампаніі і так працуе на Chrome). Хоць я цаню пачуццё ведаць асновы, так як большасць маіх кліентаў выкарыстоўваюць IE у розных формах.
дададзена аўтар IGGt, крыніца
@nathanhayfield Не, гэта не будзе, як наконт браўзэраў, якія не прымаюць HTML5, і не гавораць «Ну людзі не павінны выкарыстоўваць іх браўзэры» гэта выбар карыстальнікаў. Вы павінны мець запасны варыянт для ўсіх.
дададзена аўтар user2406160, крыніца
@nathanhayfield Не, гэта не будзе, як наконт браўзэраў, якія не прымаюць HTML5, і не гавораць «Ну людзі не павінны выкарыстоўваць іх браўзэры» гэта выбар карыстальнікаў. Вы павінны мець запасны варыянт для ўсіх.
дададзена аўтар user2406160, крыніца
Ды вы, у адваротным выпадку ён недаступны для карыстальнікаў. Буйныя кампаніі, як BBC і большасць ўрада займаюцца бізнесам выкарыстоўваюць IE7, сур'ёзна вы павінны вярнуцца і вывучыць асновы.
дададзена аўтар user2406160, крыніца
Ды <�я> кашаль кашаль «Усе карыстальнікі IE7, ды гэта дакладна вы ўрадавы прабег бізнесу, атрымаць рэальны браўзэр, перш чым выкарыстаць гэты сайт!» Я ўпэўнены, што будзе ісці ўніз добра, прэстыжнасць для вашай фантазіі гасудар мой, і я мяркую, што вы не вельмі яркі, так што я думаю, што я павінен сказаць вам, што быў сарказм.
дададзена аўтар user2406160, крыніца
Ды <�я> кашаль кашаль «Усе карыстальнікі IE7, ды гэта дакладна вы ўрадавы прабег бізнесу, атрымаць рэальны браўзэр, перш чым выкарыстаць гэты сайт!» Я ўпэўнены, што будзе ісці ўніз добра, прэстыжнасць для вашай фантазіі гасудар мой, і я мяркую, што вы не вельмі яркі, так што я думаю, што я павінен сказаць вам, што быў сарказм.
дададзена аўтар user2406160, крыніца
на баку, звярніце ўвагу на jQuery прадставіць функцыю не трэба, каб вы выкарыстоўваць функцыю OnClick на кнопцы ўводу для яго выкліку. ён працуе на форме, незалежна ад таго, як вы прадставіць яго.
дададзена аўтар nathan hayfield, крыніца
@ User2406160 Для карыстальнікаў IE7 вы проста перанакіраваць іх на старонку 404, якая кажа ім, каб атрымаць рэальны браўзэр і дае спасылку на Chrome ...
дададзена аўтар nathan hayfield, крыніца
@ User2406160 Для карыстальнікаў IE7 вы проста перанакіраваць іх на старонку 404, якая кажа ім, каб атрымаць рэальны браўзэр і дае спасылку на Chrome ...
дададзена аўтар nathan hayfield, крыніца
на баку, звярніце ўвагу на jQuery прадставіць функцыю не трэба, каб вы выкарыстоўваць функцыю OnClick на кнопцы ўводу для яго выкліку. ён працуе на форме, незалежна ад таго, як вы прадставіць яго.
дададзена аўтар nathan hayfield, крыніца
html5 мае абавязковы атрыбут, які будзе зрабіць з дапамогай JavaScript не мае значэння.
дададзена аўтар nathan hayfield, крыніца
няма, ты не ...
дададзена аўтар nathan hayfield, крыніца
html5 мае абавязковы атрыбут, які будзе зрабіць з дапамогай JavaScript не мае значэння.
дададзена аўтар nathan hayfield, крыніца

7 адказы

Вашы селектары павінны быць $ ( 'input.required') , а не $ ( 'патрабуецца ўвод') .

6
дададзена
ура, я ведаў, што гэта будзе нешта сапраўды відавочна.
дададзена аўтар IGGt, крыніца

Вашы селектары павінны быць $ ( 'input.required') , а не $ ( 'патрабуецца ўвод') .

6
дададзена
ура, я ведаў, што гэта будзе нешта сапраўды відавочна.
дададзена аўтар IGGt, крыніца

Па-першае, я думаю, вы павінны выкарыстоўваць jQuery убудова праверкі.

Ohterwise, гэты код павінен працаваць:

-Дадаў ў onsubmit = «вяртанне SubmitForm ()» у вашай форме тэга

<form method="POST" action="test9.php" name="Form1" ID="Form1" onsubmit="return submitForm();">

-get пазбавіцца ад OnClick на кнопку адпраўкі

-І вось функцыя SubmitForm:

function submitForm() {
var valid = true;

$('input[class="required"]').each(function() {
    if ($(this).val() === '') {   
        alert("One field is empty and try again");
        valid = false;
    }
});

return valid;

}

Але я сапраўды рэкамендую jquery.validate.js

1
дададзена

Селектар павінен быць альбо <�моцны> $ ( 'input.required') </моцны> або <�моцны> $ ( '# Код спасылкі') </моцны>.

$('#RefNo') is more faster since it uses native getElementById method.

1
дададзена
Гэта не будзе працаваць, калі ОП мае больш неабходныя палі.
дададзена аўтар Derek S, крыніца

Замест таго, каб рабіць гэта на падпарадкаванай форме, выдаліце ​​прадставіць тып уваходнага сігналу ад кнопкі і толькі што гэта будзе рэгулярная кнопкай.

Маючы гэта на ўвазе, ваш Javascript павінен быць:

<script>
    $('#submitButton').click(function() {
        $('input.required').each(function() {
            if ($(this).val() == '') {   
                $(this).addClass('highlight');
            }
        });

        if ($('.highlight').length > 0) {
            alert("Please fill in a Ref Number and try again");
            return false;
        }
        else {
            $('#Form1').submit();
        }
    });
</script>

У адваротным выпадку, так што вы робіце гэта, вы павінны адмяніць мерапрыемства, пакуль вы не запусціце праверку для адсутнічаюць дадзеных, а затым адправіць форму ў любым выпадку. Такім чынам, ўтрымлівае вас ад таго, каб адмяніць дзеянне, так як старыя браўзэры IE зрабіць гэта інакш, чым іншыя браўзэры, і нават больш новыя версіі IE. Так што гэта робіць ваш код больш чытэльным.

0
дададзена

Ваш селектар, здаецца, трохі выключана:

It should be $('.required')

Тое, як вы маеце яго спрабуе выбраць ўваход, укладзены ўнутры класа патрабуецца.

0
дададзена

Ваш селектар, здаецца, трохі выключана:

It should be $('.required')

Тое, як вы маеце яго спрабуе выбраць ўваход, укладзены ўнутры класа патрабуецца.

0
дададзена