Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript验证在.Net内容页上不起作用_Javascript_Validation_Master Pages_Client Side - Fatal编程技术网

Javascript验证在.Net内容页上不起作用

Javascript验证在.Net内容页上不起作用,javascript,validation,master-pages,client-side,Javascript,Validation,Master Pages,Client Side,我想知道是否有其他人经历过以下问题 在单个未链接(到母版页).aspx页面上,我正在执行简单的JS验证: function validateMaxTrans(sender, args) { // requires at least one digit, numeric only characters var error = true; var regexp = new RegExp("^[0-9]{1,40}(\.[0-9]{1,2})?$"

我想知道是否有其他人经历过以下问题

在单个未链接(到母版页).aspx页面上,我正在执行简单的JS验证:

   function validateMaxTrans(sender, args) {
        // requires at least one digit, numeric only characters
        var error = true;
        var regexp = new RegExp("^[0-9]{1,40}(\.[0-9]{1,2})?$");
        var txtAmount = document.getElementById('TxtMaxTransAmount');
        if (txtAmount.value.match(regexp) && parseInt(txtAmount.value) >= 30) {
            document.getElementById('maxTransValMsg').innerHTML = ""
            args.IsValid = true;
        }
        else {
            document.getElementById('maxTransValMsg').innerHTML = "*";
            args.IsValid = false;
        }
    }
然后,只要我将其移动到母版页的内容页,我就会得到txtAmount为null


在尝试使用母版页/内容页执行客户端JS验证时,是否有其他方法访问DOM?

查看母版页中呈现页面的源代码。许多元素都有一个像ControlX$Subcroly$txtMaxTransAmount这样的ID。。。您需要相应地调整验证。我通常只是将ID注入到客户端文档中


<script type="text/javascript">
var controls = {
  'txtAmount': '<%=TxtMaxTransAmount.ClientId%>',
  ...
}
</script>

变量控制={
“txtAmount”:“,
...
}

我会把它放在内容区域的末尾,以确保控件已经呈现。这样,您只需使用window.controls.txtmount引用服务器端控件的标记id即可。您甚至可以直接将右侧值设置为document.getElementById(“…”)。

是否使用asp文本框?如果是这样,我相信您需要做一些事情,比如
document.getElementById(“”)

希望这有帮助
汤姆

是的,我正在使用ASP.Net文本框。使用var txtmount=document.getElementById('TxtMaxTransAmount');在非内容页面上运行良好-仅在独立的.Net页面上运行。我甚至使用了.net限定/生成的id:ctl00\u contentplaceholder mainbody\u Txt。。。我认为汤姆的答案可能有用,但我做了一个快速的变通,目前效果很好。