我正在使用ajax工具包的ValidatorCalloutExtender在文本框中顯示錯誤消息。 ValidatorCalloutExtender正在驗證文本框的RegularExpressionValidator上進行擴展。我遇到的問題是,我需要動態更改ValidationExpression和ErrorMessage,具體取決於與文本框相關聯的選擇了哪些下拉列表項。我能夠成功地使用客戶端事件和JavaScript做到這一點,但是我似乎無法讓ValidatorCalloutExtender更新正確顯示的ErrorMessage。讓我更加困惑的事情是在Firefox中這樣做很好,但我似乎無法讓它在任何版本的IE中都能正常工作。如果任何人都可以幫助我找到一種方法來顯示我的錯誤消息,以動態更改它將不勝感激。動態更改ajax工具包ValidatorCalloutExtender
0
A
回答
3
好大家,
我想通了,我自己的問題,我想我可能把我的發現在這裏如果其他人試圖做類似我的東西。
在javascript中,我將regularexpressionvalidator的對象綁定到一個文本框,放入一個函數中,該函數將根據下拉列表中的值更改正則表達式和錯誤消息。如果用戶更改了下拉列表值,我希望validator和ajax validatorcallout立即更新,並告訴用戶文本框中的值現在是有效的或者它是無效的,但是由於這個新原因。我並不是說這是做這件事的最好方式,但這是對我有用的方式,我希望在客戶端做到這一點。
下面是我使用和(VAL)是在通過的RegularExpressionValidator對象的代碼。
function setSearchRegEx(val)
{
var regExpression = "";
var valMessage = "Must be in the following format: ";
var message = "";
// set regex information depending on what drop down value they select.
switch (document.getElementByID('ddlValue1.ClientID').value) {
case "Value1":
regExpression = "^[a-zA-Z0-9'*\s-]{1,75}$";
message = valMessage + "[A-Z][0-9]'. #-";
break;
case "Value2":
regExpression = "^\[0-9]{3}-\[0-9]{2}-\[0-9]{4}|\d{9}$";
message = valMessage + "999-99-9999";
break;
case "Value3":
regExpression = "[a-zA-Z0-9'*\s-]{1,50}$";
message = valMessage + "[A-Z][0-9]'. #-";
break;
case "Valu4":
regExpression = "^\[0-9]{3}-\[0-9]{3}-\[0-9]{4}$";
message = valMessage + "999-999-9999";
break;
case "Value5":
regExpression = "^[0-9]{1,10}$";
message = valMessage + "9999999999";
break;
default:
regExpression = "";
message = "";
}
// set validation control values for the new drop down selected.
val.validationexpression = regExpression;
val.errormessage = message;
val.title = message;
// fire the validation function to validate what is currently in the textbox
val.isvalid = val.evaluationfunction(val);
//call the function to manipulate the UI
validatorUpdateDisplay(val);
}
function validatorUpdateDisplay(val)
{
if (val.isvalid) {
//make the error invisible
val.display = "none";
}
else {
var browser = navigator.appName;
//different browsers get updated differently, IE really the only main one to update differently.
if (browser == "Microsoft Internet Explorer") {
val.ValidatorCalloutBehavior._errorMessageCell.innerText = val.errormessage;
}
else {
val.ValidatorCalloutBehavior._errorMessageCell.textContent = val.errormessage;
}
//make the error visible
val.display = "inline";
}
}
正如你所看到的Internet Explorer不工作方式相同的休息我測試過的瀏覽器做到了!如果有人有更好的做法,請分享,我希望這個答案能幫助一些人!
謝謝
相關問題
- 1. 如何更改Ajax ValidatorCalloutExtender的方向
- 2. 更改AJAX工具包的HeaderTemplate TabContainer
- 3. 動態更改CKEditor工具欄
- 4. 更改Eclipse工具欄圖標動態
- 5. 使用DataTemplateSelector動態更改WPF工具包圖表類型
- 6. Ajax控制工具包組合框JavaScript更新/更改
- 7. Ajax和動態更改URL?
- 8. ValidatorCalloutExtender包含TabContainer/TabPanels?
- 9. 動態更改工具對象的工具提示
- 10. Ajax工具包模態彈出
- 11. 動態關閉Ajax控件工具包自動完成擴展
- 12. Ajax工具包AutoCompleteExtender
- 13. Ajax工具包TabContainer
- 14. 如何更改Ajax控件工具包控件按鈕文本
- 15. ASP.NET AJAX控件工具包CalendarExtender更改日期
- 16. ASP.NET AJAX控件工具包 - 更改AsyncFileUpload控件的外觀?
- 17. 是否可以動態定位ValidatorCalloutExtender?
- 18. Ajax控制工具包動畫 - 翻轉
- 19. ASP.Net - AJAX控件工具包 - 動態添加和刪除標籤
- 20. ajax控件工具包日曆動態生成的文本框
- 21. 使用jQuery或JavaScript生成動態AJAX工具包控件
- 22. jQuery工具可滾動,動態更改高度
- 23. 更改工具欄菜單項行動動態
- 24. 事件工具包更改日曆?
- 25. 更改工具包的屬性:TiltEffect.IsTiltEnabled C#
- 26. 敏捷工具包:密碼更改FormAndSave
- 27. Ajax工具包錯誤
- 28. Ajax工具包問題
- 29. ASP.NET AJAX GUI工具包
- 30. Ajax工具包和MVC 2