這段代碼使用真實進入一個10位數的電話號碼,並將其格式化,以便對數據庫中的所有條目遵循相同的格式。代碼按原樣運行,但問題在於HTML是動態生成的,並且Id發生了變化。它總是以「手機」開始,但數字和連加入打破了代碼(例如,電話59-0-1)「名稱」和「類」保持不變,但我似乎無法得到它的工作使用這些元素。的getElementById打破時,ID改變
<form name="registration_form" id="registration_form">
<input type="text" name="phone" id="phone" class="ee-reg-page-questions ee-reg-page-text-input phone" />
</form>
<script>
var x = document.getElementById("phone");
x.addEventListener("blur", formatPhone, true);
function formatPhone() {
var obj = document.getElementById("phone");
var numbers = phone.value.replace(/\D/g, ''),
char = {0:'(',3:') ',6:'-'};
obj.value = '';
for (var i = 0; i < numbers.length; i++) {
obj.value += (char[i]||'') + numbers[i];
}
}
</script>
下面是一個使用getElementByClassName
嘗試:
function formatPhone() {
var obj = document.getElementsByClassName("ee-reg-page-questions ee-reg-page-text-input phone")[0];
var numbers = phone.value.replace(/\D/g, ''),
char = {0:'(',3:') ',6:'-'};
obj.value = '';
for (var i = 0; i < numbers.length; i++) {
obj.value += (char[i]||'') + numbers[i];
}
}
爲什麼不使用類和使用' getElementsByClassName方法()'? – Barmar 2014-09-13 19:56:39
如果沒有辦法知道身份證是什麼,爲什麼還要打擾給它一個ID? – Barmar 2014-09-13 19:57:37
我試過了,它不會工作。 – DSWebber 2014-09-13 21:17:11