0
我試圖格式化基於國家的電話號碼字段。當用戶填寫詳細信息時邏輯工作正常,但在國家更改並重新填寫時不起作用。 例如: 填寫德國的表格,然後如果嘗試將縣更改爲美國並填寫電話「+」,即使格式不同,也不會重新加載頁面。表單驗證Jquery對象
$(document).ready(function($){
$('#country').on('change', function() {
if (this.value == 'US' || this.value == 'CA')
{
$('#C_BusPhone')
.keydown(function (e) {
var key = e.charCode || e.keyCode || 0;
$phone = $(this);
if (key !== 8 && key !== 9) {
if ($phone.val().length === 4) {
$phone.val($phone.val() + ')');
}
if ($phone.val().length === 5) {
$phone.val($phone.val() + ' ');
}
if ($phone.val().length === 9) {
$phone.val($phone.val() + '-');
}
}
return (key == 8 ||
key == 9 ||
key == 46 ||
(key >= 48 && key <= 57) ||
(key >= 96 && key <= 105));
})
.bind('focus click', function() {
$phone = $(this);
if ($phone.val().length === 0) {
$phone.val('(');
}
else {
var val = $phone.val();
$phone.val('').val(val);
}
})
.blur(function() {
$phone = $(this);
if ($phone.val() === '(') {
$phone.val('');
}
});
}
else
{
$('#C_BusPhone')
.keydown(function (e) {
if ($(this).val().indexOf("+") === -1) {
$(this).val("+" + $this.val());
}
})
}
});
});
你能提供一個示例代碼的[小提琴](https://jsfiddle.net/)嗎?它會使調試方式更快 –
https://jsfiddle.net/ranred/dap3L426/ – temperature
是否必須在鍵入時進行格式設置?重新格式化onchange號碼可能會更容易。爲每個國家創建格式化程序方法,並附上正確的/在國家更改時拆除上一個。 您應該將原始數字作爲自定義數據屬性存儲在元素上。 也看看這實際驗證:http://html5pattern.com/Phones – imjosh