Javascript自定义验证

时间:2011-06-24 11:17:07

标签: javascript asp.net validation

我正在编写一个自定义的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);
                }
            }
        }

程序执行良好(使用alert()测试)直到以下行:

var labelErr = document.CreateElement('label');

问题出在哪里?

5 个答案:

答案 0 :(得分:1)

您可以使用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>

我建议请试试这个......

答案 1 :(得分:0)

document.createElement不是 document.CreateElement

MDC链接:document.createElement

更新:您应该访问innerHTML的{​​{1}}而不是label

摘录

value

答案 2 :(得分:0)

我得到了合作:

http://jsfiddle.net/ahallicks/kxPeN/2/

标签没有值属性

答案 3 :(得分:0)

这不是您问题的直接答案,但您的上司是否会选择不同的预建验证方法?我偏爱FlowPlayers jQuery based validator。设置非常简单:

$("#myform").validator();

我过去曾写过几个验证框架。我终于厌倦了重新发明轮子。

答案 4 :(得分:0)

我可以建议:

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"
    }
  }
}