0

この jQuery プラグインhttp://bassistance.de/jquery-plugins/jquery-plugin-validationを使用しようとしているので、作成中のフォームを検証できます。しかし、電話フィールドを検証していないようです。私が間違ったことを理解するのを手伝ってくれる人はいますか?

これはこれまでの私のコードです

<script type="text/javascript">
 var validator
 jQuery(document).ready(function() {
     validator = jQuery("#participateform").validate();
 });

function sendRequest(){ 
        var validform=validator.form();       
        if(validform)
        {
            alert("Form is valid");
        }
}
</script>

<form id="participateform" >
    <div class="table">
        <div class="tr">
            <div class="td">fullname</div>
            <div class="td">
                <input type="text" value="" id="fullname" name="fullname" class="required" />
            </div>
        </div>
        <div class="tr">
            <div class="td">your e-mail </div>
            <div class="td">
                <input type="text" value="" id="e-mail" name="e-mail" class="required email" />
            </div>
        </div>
        <div class="tr">
            <div class="td">area</div>
            <div class="td">
                <select id="area" name="area"></select>
            </div>
        </div>
        <div class="tr">
            <div class="td">Phone 1</div>
            <div class="td">
                <input type="text" value="" id="phone" name="phone" class="required phone"/>                
            </div>
        </div>
        <div class="tr">
            <div class="td">Phone 1</div>
            <div class="td">
                <input type="text" value="" id="phone2" name="phone2" />
            </div>
        </div>

    </div>

    <input type="button" id="btnsubmit" value="submit" onclick="sendRequest()"> 
</form>
4

4 に答える 4

2

ライブラリのソース コードは、このライブラリが電話に対して次の検証規則を使用することを示唆しています。

jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
    phone_number = phone_number.replace(/\s+/g, "");
    return this.optional(element) || phone_number.length > 9 &&
        phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");

jQuery.validator.addMethod('phoneUK', function(phone_number, element) {
    phone_number = phone_number.replace(/\s+|-/g,'');
    return this.optional(element) || phone_number.length > 9 &&
        phone_number.match(/^(\(?(0|\+44)[1-9]{1}\d{1,4}?\)?\s?\d{3,4}\s?\d{3,4})$/);
}, 'Please specify a valid phone number');

jQuery.validator.addMethod('mobileUK', function(phone_number, element) {
    phone_number = phone_number.replace(/\s+|-/g,'');
    return this.optional(element) || phone_number.length > 9 &&
        phone_number.match(/^((0|\+44)7(0|4|5|6|7|8|9){1}\d{2}\s?\d{6})$/);
}, 'Please specify a valid mobile number');

//Matches UK landline + mobile, accepting only 01-3 for landline or 07 for mobile to exclude many premium numbers
jQuery.validator.addMethod('phonesUK', function(phone_number, element) {
    phone_number = phone_number.replace(/\s+|-/g,'');
    return this.optional(element) || phone_number.length > 9 &&
        phone_number.match(/^(0[1-3]{1}[0-9]{8,9})$/) || phone_number.match(/^(07[5-9]{1}[0-9]{7,8})$/);
}, 'Please specify a valid uk phone number');

したがって、これを行う代わりに:

<input type="text" value="" id="phone" name="phone" class="required phone"/>

米国の電話番号でこれを試してください。

<input type="text" value="" id="phone" name="phone" class="required phoneUS"/>

または、これは英国の電話番号の場合:

<input type="text" value="" id="phone" name="phone" class="required phoneUK"/>

またはこれは英国の携帯電話番号の場合

<input type="text" value="" id="phone" name="phone" class="required mobileUK"/>
于 2012-08-14T12:41:52.507 に答える
2

電話で失敗する検証の種類は何ですか?

ソース コードをざっと見てみると、検証クラスとして phone が欠けていることがわかります。

編集

カスタム ルールを追加する必要があります。

$(document).ready(function(){

  $.validator.addMethod("phone", function(value, element) {
    //Any code that will return TRUE or FALSE
    return /^(\d+){10}$/.test(value);
  },
  "Error message");

});
于 2012-08-14T12:35:11.330 に答える
1

ここを見てみてください。digits()またはのような別の組み込みの検証方法を使用する必要があるようですphoneUS()

于 2012-08-14T12:39:28.393 に答える
1

前述のとおり、電話の検証はありません。jQuery.validator.addMethod() を使用して独自のものを定義できます (正規表現または任意の方法で)。十分に文書化されています。

これも参照してください: http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.js

于 2012-08-14T12:40:15.600 に答える