2014-10-31 43 views
0

我有一個輸入在我的形式是這樣的:限制輸入的字符,只是數量

<div> 
    <label for="phone">Phone Number:</label> <br /> 
    <input type="text" id="phone" name="phone" /> <br /> 
    <span id="phoneInfo" style="font-size: 11px;color:red;"></span> 
</div> 

,我想在此輸入限制字符,這裏是JavaScript代碼

var phone = $("#phone"); 
var phoneInfo = $("#phoneInfo"); 
function validatePhone(){ 
    var a = $("#phone").val(); 
    var filter = /^[0-9]$/; 
    //it's valid 
    if(filter.test(a) || message.val().length > 10){    
     phone.removeClass("error"); 
     phoneInfo.text("- thank you"); 
     phoneInfo.removeClass("error"); 
     return true; 
    } 
    //it's NOT valid 
    else{ 
     phone.addClass("error"); 
     phoneInfo.text("X"); 
     phoneInfo.addClass("error"); 
     return false; 
    } 
} 

,但它不沒有工作...

+0

什麼是信息? – sinisake 2014-10-31 08:13:13

+0

定義「*不起作用*」。 – 2014-10-31 08:16:52

回答

0

你在你的過濾器忘了 '+':

var filter = /^[0-9]+$/; 

否則你想到只有1位數。

此外,您使用未定義的變量:

message.val().length 

我猜你想使用phone

$('#validate').click(function() { 
 
    var phone = $("#phone"); 
 
    var phoneInfo = $("#phoneInfo"); 
 
    var a = $("#phone").val(); 
 
    var filter = /^[0-9]+$/; 
 
    //it's valid 
 
    if (filter.test(a) && phone.val().length <= 10) { 
 
     phone.removeClass("error"); 
 
     phoneInfo.text("- thank you"); 
 
     phoneInfo.removeClass("error"); 
 
     return true; 
 
    } 
 
    //it's NOT valid 
 
    else { 
 
     phone.addClass("error"); 
 
     phoneInfo.text("X"); 
 
     phoneInfo.addClass("error"); 
 
     return false; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div> 
 
    <label for="phone">Phone Number:</label> <br /> 
 
    <input type="text" id="phone" name="phone" /> <br /> 
 
    <span id="phoneInfo" style="font-size: 11px;color:red;"></span> 
 
    <input type="button" id="validate" value="Submit"/> 
 
</div>

+0

謝謝,但是這段代碼接受字母,例如,如果您在輸入內輸入abcdefghijkl,它返回謝謝你。 – 2014-10-31 09:42:14

+0

啊沒關係,我解決它。 – 2014-10-31 10:04:31

+0

再次感謝你,現在它不接受數字,例如當你輸入01111111111它返回X – 2014-10-31 10:53:15

0

有幾種方法可以實現這一點,其中之一包括使用jQuery插件,名爲jQuery Validation。下面是一個例子代碼:

實施例:

使「場」需要和美國的電話號碼。

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Makes "field" required and a US phone number.</title> 
<link rel="stylesheet" href="http://jqueryvalidation.org/files/demo/site-demos.css"> 

</head> 
<body> 
<form id="myform"> 
<label for="field">Required, us phone number: </label> 
<input class="left" id="field" name="field"> 
<br/> 
<input type="submit" value="Validate!"> 
</form> 
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> 
<script src="http://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script> 
<script src="http://jqueryvalidation.org/files/dist/additional-methods.min.js"></script> 
<script> 
// just for the demos, avoids form submit 
jQuery.validator.setDefaults({ 
    debug: true, 
    success: "valid" 
}); 
$("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     phoneUS: true 
    } 
    } 
}); 
</script> 
</body> 
</html> 

但是,如果你不想使用外部插件或JavaScript,你可以依靠你輸入的HTML 5特性type="number"(而不是type="text")。

實施例:

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
</head> 
<body> 
<div> 
    <form id="myform"> 
    <label for="phone">Phone Number:</label> <br /> 
    <input type="number" id="phone" name="phone" /> <br /> 
    <span id="phoneInfo" style="font-size: 11px;color:red;"></span> 
    </form> 
</div> 
</body> 
</html> 

詳見here

+0

我需要波斯語不是英文的錯誤,所以我必須使用java或php,我不能使用HTML 5,謝謝 – 2014-10-31 10:59:50

0

試試這個代碼

function phonenumber(inputtxt) 
    { 
     var phoneno = /^\d{10}$/; 
     if((inputtxt.value.match(phoneno)) 
      { 
      return true; 
      } 
      else 
      { 
      alert("message"); 
      return false; 
      } 
    } 
+0

謝謝你,但它給出了一個警告,比如彈出窗口,但在這個頁面,我需要頁面錯誤在http://farakhan.samincar.com/ – 2014-10-31 11:02:03

0

如果你想設置的字符接受輸入框,然後你必須寫文本框的只是maxlength屬性...爲例。 ..

<input type="text" maxlength="10" id="MobNo" name="MobNo" /> 

所以輸入框只能接受10個字符。

+0

我用這個網站在波斯語自我頁面apear,但以這種方式當你輸入8個字符的數字就說明了英語的錯誤,所以我必須使用Java或PHP,而不是HTML5的 – 2014-10-31 10:59:01