[英]Javascript 'undefined error' in asp.net webform
我不是javascript專家,但是我以前使用過它,這個問題使我感到困惑。 這是JavaScript:
function formatNumThousands(myNumber) {
if (myNumber.length > 0) {
var index = myNumber.indexOf(',');
while (index != -1) {
myNumber = myNumber.replace(',', '');
index = myNumber.indexOf(',');
}
var myResult = '';
for (var i = myNumber.length - 1; i >= 0; i--) {
myResult = myNumber[i] + myResult;
if ((myNumber.length - i) % 3 == 0 & i > 0) myResult = ',' + myResult;
}
document.getElementById('<%=txtMyNumber.ClientID%>').value = myResult;
}
}
在后面的代碼中,我設置了此文本框的OnBlur事件的屬性:
this.txtMyNumber.Attributes.Add("onblur", "formatNumThousands(this.value);");
我構建並發布了該應用程序,它在我的機器上運行良好。 不管他們做什么,其他兩個用戶在文本框中都會得到“未定義”。
試試這個修整的版本( 請參閱jsfiddle )。 看到我用charAt()
方法替換了[]
運算符,因為它是從字符串中提取單個字符的一種更為保守的方法:
function formatNumThousands(editElement) {
if (!editElement || editElement.value.length == 0)
return;
var myNumber = editElement.value.replace(/,/g, '');
var myResult = '';
for (var i = myNumber.length - 1; i >= 0; i--) {
myResult = myNumber.charAt(i) + myResult;
if ((myNumber.length - i) % 3 == 0 & i > 0)
myResult = ',' + myResult;
}
editElement.value = myResult;
}
不要忘記將后面的代碼更改為
// Notice that `.value´ is gone:
this.txtMyNumber.Attributes.Add("onblur", "formatNumThousands(this)");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.