Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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自定义验证_Javascript_Asp.net_Validation - Fatal编程技术网

Javascript自定义验证

Javascript自定义验证,javascript,asp.net,validation,Javascript,Asp.net,Validation,我正在编写一个自定义javascript验证脚本,在名为“toggle”的div中遍历所有输入元素,并选择每个元素中有一个名为“required”的类,如果元素的值是空字符串(空),那么我需要创建包含错误消息的标签,并将它们放在文本框旁边 代码如下: function clientErrMsgs() { var container = document.getElementById("toggle"); var inputArray = container.get

我正在编写一个自定义javascript验证脚本,在名为“toggle”的div中遍历所有输入元素,并选择每个元素中有一个名为“required”的类,如果元素的值是空字符串(空),那么我需要创建包含错误消息的标签,并将它们放在文本框旁边

代码如下:

function clientErrMsgs() {
        var container = document.getElementById("toggle");
        var inputArray = container.getElementsByTagName("input");
        for (var i = 0; i < inputArray.length; i++) {
        alert("");
            if (inputArray[i].getAttribute("class") == "required" && inputArray[i].value == "") {
                var errmsg = inputArray[i].getAttribute("data-errormessage");
                var labelErr = document.CreateElement('label');
                labelErr.id = "ErrMsg" + i;
                labelErr.value = errmsg;
                var parent = inputArray[i].parentNode;
                parent.appendChild(labelErr);
                }
            }
        }

问题出在哪里?

它的
document.createElement
不是
document.createElement

MDC链接:

更新:您应该访问
标签的
innerHTML
,而不是

片段

var labelErr = document.createElement('label');
labelErr.id = "ErrMsg" + i;
labelErr.innerHTML= errmsg;
var parent = inputArray[i].parentNode;
parent.appendChild(labelErr);

您可以使用asp.net自定义验证程序来执行此操作

我给你举个例子,如何做到这一点

 <asp:CustomValidator ID="CustomValidator1" runat="server" 
ErrorMessage="Sms length is exceeding over 160." 
ClientValidationFunction="validateLength" ControlToValidate="txtSmsMessage" 
SetFocusOnError="True" ValidationGroup="add">*</asp:CustomValidator>

<script language="javascript" type="text/javascript">
    function validateLength(oSrc, args)
    {
        args.IsValid = (args.Value.length < 160);
    }
</script>
*
函数validateLength(oSrc、args)
{
args.IsValid=(args.Value.length<160);
}

我建议您试试这个…

我有一些东西可以使用:


标签没有值属性

这不是对您问题的直接回答,但您的上级会选择不同的预构建验证方法吗?我偏爱你。设置非常简单:

$("#myform").validator();
我在过去写过几个验证框架。我终于厌倦了重新发明轮子。

我可以建议如下:

function clientErrMsgs() {
  var container = document.getElementById("toggle"); 
  var inputArray = container.getElementsByTagName("input");
  for (var inp, i=0, n=inputArray.length; i<n; i++) {
    inp = inputArray[i];
    if (inp.getAttribute("class") === "required") {
      var errMsg = container.getElementById("ErrMsg"+i);
      if (!errMsg) {
         errMsg = document.createElement('span');
         errMsg.id = "ErrMsg" + i;
         errMsg.innerHTML= inp.getAttribute("data-errormessage");
         inp.parentNode.appendChild(errMsg);      
      }
      errMsg.style.display= (inp.value === "")?"":"none"
    }
  }
}
函数clientermsgs(){
var container=document.getElementById(“切换”);
var inputArray=container.getElementsByTagName(“输入”);

对于(var inp,i=0,n=inputArray.length;iokay,已经通过了。现在,在我创建了一个标签之后,我似乎无法为它的'id'属性添加值?哈,我不允许使用内置的验证控件。我的上级告诉我它们是为业余爱好者准备的:)没有冒犯,我去了他们,HeHelp转换成SPAN到HTML,所以请试试这个VaLabelRe=文档。CealEngEnter(‘SPAN’);下面有很多很好的答案。他们中有一个帮助你吗?考虑把其中一个标记为答案。请参考这个URL进行自定义验证。
function clientErrMsgs() {
  var container = document.getElementById("toggle"); 
  var inputArray = container.getElementsByTagName("input");
  for (var inp, i=0, n=inputArray.length; i<n; i++) {
    inp = inputArray[i];
    if (inp.getAttribute("class") === "required") {
      var errMsg = container.getElementById("ErrMsg"+i);
      if (!errMsg) {
         errMsg = document.createElement('span');
         errMsg.id = "ErrMsg" + i;
         errMsg.innerHTML= inp.getAttribute("data-errormessage");
         inp.parentNode.appendChild(errMsg);      
      }
      errMsg.style.display= (inp.value === "")?"":"none"
    }
  }
}