1

私のサイトのいくつかのフォームにjquery検証プラグインを使用しています。ただし、フォームの検証の1つはIE7と8でのみ機能しません。ただし、同じ検証スクリプトを使用する他のフォームは機能します。デバッグを試みたところ、問題がshowErrorsの部分にあることがわかりました。「forin」JSを使用してerrorMapをループすると、showobjectはエラーをサポートしません。それを修正する方法はありますか?

これが私が持っているHTMLです

<form name="donate" id="form1" action="https://www.xxxx.xxx.xx/api/help" method="POST" target="_top">     
            <input type="hidden" name="face" id="faceinput" style="clear: both; margin:0; padding:0;">
            <input type="hidden" name="image" id="imageinput" style="clear: both; margin:0; padding:0;">
            <h3>Thank you for helping! </h3>
            <h4>Please fill out the following details.</h4>     
            <label>Name: </label>
            <input type="text" name="fullname" id="fullname" class="required" />
            <div class="clearfix"></div>
            <label>Email: </label>
            <input type="text" name="email" id="email" class="required email" />
            <div class="clearfix"></div>
            <label>Amount: </label>
            <input type="text" name="amount" id="amount" class="required number minStrict" /><input type="button" id="submitBtn" value="Donate" />
            <div class="clearfix"></div>
            <div id="error" style="display:none;">
                Oops! The minimum amount to donate is $6. Don't wish to donate? Please click on the close button on the top right hand corner instead.
            </div>
        </form>

JavaScript

    $('#form1').validate({
                onkeyup: false,
                focusInvalid: false,
                rules : {
                    amount : {
                        required    : true,
                        number      : true,
                        minStrict   : 5
                    }
                },
                messages : {
                    fullname: "Please fill out your name",
                    email: {required:"Please fill out your email address",email:"Invalid email address"},
                    amount: {required:"Please fill out amount to donate",number:"Invalid amount",minStrict:"Minimum amount is 6$"}
                },
                showErrors: function(errorMap, errorList) {
                    alert('here');

                    for(error in errorMap){
                        alert(error);
                        /*if(error=="fullname" || error=="email" || error=="amount"){
                            //if(errorMap[error]=='Minimum amount is 6$') {
                                //$('div#error').show();
                            //}
                            //else {
                                $(':text[name='+error+']').val(errorMap[error]).addClass('error');//append err msg in all text field and hightlight
                                $('div#error').hide();
                            }
                        }*/
                    }
                }
            });

$('#submitBtn').click(function(){
            if( $("#form1").valid()){
                alert('here');
                $('div#error').hide();
                $('#form1').submit();
            }
        });

エラー

SCRIPT438:オブジェクトはこのプロパティまたはメソッドvalidate.jsをサポートしていません。26行目5文字目

varエラーを追加するだけで修正されました...

for(var error in errorMap){//

4

1 に答える 1

1

理由はわかりませんが、

for(var error in errorMap){

コメントに投稿されているように、問題を修正しているようです...

于 2012-12-04T05:04:57.660 に答える