javascript - 将 javascript 对象包装到 .Net 用户控件

标签 javascript

我有一个问题,我不知道如何开始...

我们都知道 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/

相关文章:

javascript - 如何使用 Ramda 从数组中获取偶数和奇数条目

javascript - 缓存服务器响应(AngularJS,延迟)

javascript - 如何启用 ENTER 按钮发送消息

javascript - 如何通过 Node.js 将对象实时发送到浏览器

javascript - 条件注释适用于除 IE 8 及更低版本之外的所有浏览器

javascript - 应用 CSS 将 HTML 内容打印为 PDF [Javascript 或 Django]

javascript - 检测是否使用nextJS、react或react-native

javascript - @font-face 更改 Leaflet.js 弹出行为

javascript - webpack-dev-server 热重载无法运行的可能原因是什么?

javascript - 使用 JS 通过 html 按钮更改 url