我有一个问题,我不知道如何开始...
我们都知道 DOM 元素有自己的事件,例如“onChange”。 TextBox 可以触发 onChange 事件,任何人都可以注册它们。
我有一个带有 2 个文本框(国家/地区代码 + 电话)的 .NET 用户控件。使用 .NET CustomValidator 验证文本框。我有服务器端方法来处理控件,例如“Value”女巫给我一个带有抄送+电话的唯一字符串。
客户端呢? ...
我想将 2 个文本框和 customvalidator 包裹在“javascript 控件”中。我很想创建函数来将我的控件作为一个独特的实体来使用。 我想做的是这样的事情:
var x = document.getElementById('myControlId');//我的控件 id 是环绕的地方 x.value("+351875647356);//女巫将分别填充两个文本框。
这可能吗?遵循什么方法?
谢谢大家。
最佳答案
可以通过创建一个 javascript 对象(如 c#/vb.net 1class 来表示您的控件)来完成您想要的操作。您的 JavaScript 实例将保留对各个元素的引用,并且您将使用自定义方法来完成繁重的工作。
<script>
function MyUserControl (ccID, phoneID) {
// set references to elements
var _ccInput = document.getElementById(ccID);
var _phoneInput = document.getElementById(phoneID);
this.setValues = function (value) {
// TODO process your input here
// _ccInput.value = ... ;
// _phoneInput .value = ... ;
}
}
</script>
您可以通过从服务器端生成 JavaScript 来创建该对象的新实例。
string script = string.format("var myControl = new MyUserControl('{0}','{1}');",
ccTextbox.ClientID, phoneTextbox.ClientID);
ClientScript.RegisterStartupScript(this.GetType(), "uniqueKeyName", script, true);
在客户端创建后,您可以从某些 JavaScript 中引用它。
<script>
myControl.setValues("+351875647356");
</script>
关于javascript - 将 javascript 对象包装到 .Net 用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3737131/