2009-07-18 4 views
1

これをすでに見たことがある、または返信しても私が元々提出した質問を見つけることができないと私は謝罪します。プラグインを検証する - submitHandlerを使用

投稿番号が の場合、ユーザーが投稿をクリックしたときに宣伝メッセージを表示する必要があります。私はあなたが はsubmitHandlerを使うべきだと聞いたことがありますが、全く新しいJavaScriptである とJQueryのほうに新しく書かなければなりません。 これを少し書いてください。私はそれがこのようなものだと思ったが、それは明らかに が動作しない。

submitHandler: function(form) { 
        var special = /^[T]{1}[A]{1}([1-13|17|25]){2}/.test(value); 
        if (special); 
        alert('You have been entered into a competition to win a special prize'); 
        form.submit(); 
      }, // end of submitHandler 

私は基本的に、彼らが確定し、フォームがサーバーに行く、彼らはをクリックし提出し たときに表示するには、このメッセージを必要とします。

これは私が検証のために、これまで持っているコードです:

$(document).ready(function(){ 
$("#orderForm").validate({ 
      onfocusout: function(element) { 
        this.element(element); 
      }, 
      rules: { 
        firstName: { 
          required: true, 
        }, 
        surname: { 
          required: true, 
        }, 
        phoneNumber: { 
          required: true, 
        }, 
        streetName: { 
          required: true, 
        }, 
        city: { 
          required: true, 
        }, 
        postalCode: { 
          required: true, 
          shipPostalCode: true, 
        }, 
        billEmailAddress: { 
          required: true, 
        }, 
        billPhoneNumber: { 
          required: true, 
        }, 
        promoCardNumber: { 
          required: true, 
          fidelityCardNumber: true, 
        }, 
        billCardNumber: { 
          required: true, 
        }, 
        billCardType: { 
          required: true, 
        }, 
      }, //end of rules 
    }); // end of validate 
    }); // end of function 


$.validator.addMethod('postalCode', function (value) { 
      return /^[A-Z]{2}\d{1,2}\s\d{1}[A-Z]{2}$/.test(value); 
      }, 'Please enter a valid postcode'); 
$.validator.addMethod('promoCardNumber', function (value) { 
      return /^[A-Z]{1}([A-Z]|\d){4}\s?([A-Z]|\d){5}\s?([A-Z]|\d){3}\d{1}$/.test (value); 
      }, 'Please enter a valid card number'); 

これは私のhtmlコードです:

<form id="orderForm" method="post" action="x"> 
    <table id="formTable" cellpadding="5"> 
    <tr> 
     <td> 
     <h3>Shipping and Billing Information</h3> 
     </td> 
     <td>&nbsp;</td> 
    </tr> 
    <tr> 
     <td><label for="firstname">First Name</label></td> 
     <td><input id="firstName" type="text" name="firstName" maxlength="30" /></td> 
    </tr> 
    <tr> 
     <td><label for="surname">Surname</label></td> 
     <td><input id="surname" type="text" name="surname" maxlength="30" /></td> 
    </tr> 
    <tr> 
     <td><label for="phoneNumber">Contact Telephone Number</label></td> 
     <td><input id="phoneNumber" type="text" name="phoneNumber" maxlength="30" /></td> 
    </tr> 
    <tr> 
     <td><label for="streetName">Street Name</label></td> 
     <td><input id="streetName" type="text" name="streetName" maxlength="30" /></td> 
    </tr> 
    <tr> 
     <td><label for="city">City</label></td> 
     <td><input id="city" type="text" name="city" maxlength="30" /></td> 
    </tr> 
    <tr> 
     <td><label for="postalCode">Post Code</label></td> 
     <td><input id="postalCode" type="text" name="postalCode" maxlength="30" /></td> 
    </tr> 
    <tr> 
     <td><label for="billEmailAddress">Email address</label></td> 
     <td><input id="billEmailAddress" type="text" name="billEmailAddress" maxlength="30" /></td> 
    </tr> 
    <tr> 
     <td><label for="billPhoneNumber">Contact Telephone Number</label></td> 
     <td><input id="billPhoneNumber" type="text" name="billPhoneNumber" maxlength="30" /></td> 
    </tr> 
    <tr> 
     <td><label for="promoCardNumber">Promotional Card</label></td> 
     <td><input id="promoCardNumber" type="text" name="promoCardNumber" maxlength="30" /></td> 
    </tr> 
    <tr> 
     <td><label for="billCardNumber">Credit Card Number</label></td> 
     <td><input id="billCardNumber" type="text" name="billCardNumber" maxlength="30" /></td> 
    </tr> 
    <tr> 
     <td><label for="billCardType">Credit Card Type</label></td> 
     <td><select id="billCardType" name="billCardType"> 
     <option value="..."> 
      Choose your card... 
     </option> 
     <option value="visa"> 
      Visa 
     </option> 
     <option value="mastercard"> 
      Mastercard 
     </option> 
     </select></td> 
    </tr> 
    <tr> 
     <td><label for="instructions">Instructions</label></td> 
     <td> 
     <textarea id="instructions" name="instructions" rows="8" cols="30"> 
Enter your requirements here or comments. </textarea></td> 
    </tr> 
    <tr> 
     <td colspan="2"><input id="submit" type="submit" name="Submit" value="Submit" /> 
       </td> 
    </tr> 
    </table> 
</form> 

答えて

1

私は(答えで私の試みと一緒に)あなたの元の質問を考えますここにある:JQuery and validate plugin - how to add a promotional message on submit

+0

はいああ、あなたが書いた、 [コード] $( "#のorderForm")を検証({ submitHandler:機能(フォーム){ }フォームの送信 を処理するために個人的なメッセージ //コードを表示するための //コード、 onfocusout:機能(要素){ ... [/コード] あなたは、私は本当にそれが、私の書き込みしようとしている見ることができるようにどのように私はそれをコード化する必要があります手掛かりを持っていない。私はそれの要素が一緒にそれを一緒にする必要があります。 –

+0

submitHandlerメソッドはどこに配置しましたか? $( "#orderForm")に渡すオブジェクトの一部でなければなりません。 submitHandlerメソッド内で、おそらく$(form).ajaxSubmit();を呼び出すことになります。 (私は思うが)Validationプラグインがデフォルトのサブミット動作を取り消してからform.submit()を呼び出すのではなく、jQueryフォームプラグインを使用している場合は、form.submit()を呼び出すだけで検証が再トリガされます。 – Rojo

+0

私は他のルールの下に提出ハンドラを置いていますが、ルールを閉じる前にします。エラーコンソールはこのようには好きではなく、私は構文エラーがあると言います。私はルールの後にそれを置くべきですか? –

関連する問題