我的表單中有一個下拉列表,其中包含執行AJAX回發並呈現另一個城市下拉列表的國家/地區。onchange事件監聽器未在文本框上觸發
我有文本框字段phonenumber已被分配一個事件偵聽器,爲了調試的目的,它只是拋出一個警報信息框到屏幕上。
方案1時的形式被加載的國家下拉
被預選與登錄的用戶的國家,文本框字段PHONENUMBER被分段的爲好。然後我改變這個電話號碼的文本框,每次都彈出警告框。即事件似乎一直在發射。
方案2 - 問題
場景1中之後,如果用戶改變了國家的選擇,有一個ajaxpostback當形式呈現完畢後,當我做在文本框中PHONENUMBER另一個變化,該事件不不開火了,任何想法爲什麼?
代碼: 事件偵聽器註冊
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
document.getElementById("ctl00_ContentPlaceHolder1_officePhone_txtInput").addEventListener("change", phoneNumberParser, true);
document.getElementById("ctl00_ContentPlaceHolder1_country_cbInput_Input").addEventListener("change", triggerCountryChange);
//alert(document.getElementById("ctl00_ContentPlaceHolder1_officePhone_txtInput").value);
//$("ctl00_ContentPlaceHolder1_officePhone_txtInput").bind("onchange", phoneNumberParser);
});
</script>
的onChange代碼
<script>
var selectedcountrycodeval;
function triggerCountryChange() {
//var phoneNumber = document.getElementById("ctl00_ContentPlaceHolder1_officePhone_txtInput").value;
//alert(phoneNumber);
//ctl00$ContentPlaceHolder1$country$cbInput_Input country name input tag
var regionCode = document.getElementById("ctl00_ContentPlaceHolder1_country_cbInput_Input").value;
alert(regionCode);
regionCode = getCountry(regionCode);
selectedcountrycodeval = regionCode;
alert(regionCode);
//document.getElementById("ctl00_ContentPlaceHolder1_officePhone_txtInput").addEventListener("change", phoneNumberParser);
//alert(document.getElementById("ctl00_ContentPlaceHolder1_officePhone_txtInput").addEventListener);
//document.getElementById("ctl00_ContentPlaceHolder1_country_cbInput_Input").addEventListener("change", triggerCountryChange);
}
function phoneNumberParser() {
alert(selectedcountrycodeval);
var phoneNumber = document.getElementById("ctl00_ContentPlaceHolder1_officePhone_txtInput").value;
alert(phoneNumber);
}
</script>
形成價值觀
國家
<INPUT style="WIDTH: 220px"
id=ctl00_ContentPlaceHolder1_country_cbInput_Input
class=ComboBoxInput_WindowsXP tabIndex=1 value="United Kingdom"
name=ctl00$ContentPlaceHolder1$country$cbInput_Input></INPUT>
電話
<INPUT style="WIDTH: 221px"
id=ctl00_ContentPlaceHolder1_officePhone_txtInput class=inputTextBox
tabIndex=1 value="+44 (20) 8222-2662" maxLength=64
name=ctl00$ContentPlaceHolder1$officePhone$txtInput >
您似乎發送的Ajax請求在哪裏?您是否在Ajax請求後即時創建電話號碼輸入? –