2013-05-15 41 views
0

我想知道如何动态传递表单名称并使用它来检索表单值。我使用了下面的代码。如何将表单名称传递给javascript并使用它读取表单值

function validatecbr(form,outagetkt) 
{ 

    var formName = form.name; 
    alert(formName); 

    var cbr1 = formName.cbr11.value; 
    var cbr2 = formName.cbr22.value; 
    var cbr3 = formName.cbr33.value; 
    var cbrnum = cbr1+cbr2+cbr3; 
    if(cbr1.length !=3){ 
     alert("Please Enter 10 digit Account telephone number"); 
     formName.cbr11.focus(); 
     return false; 
    } 
    else if(cbr2.length !=3){ 
     alert("Please Enter 10 digit Account telephone number"); 
     formName.cbr22.focus(); 
     return false; 
    } 
    else if(cbr3.length !=4){ 
     alert("Please Enter 10 digit Account telephone number"); 
     formName.cbr33.focus(); 
     return false; 
    } 
    else 
    { 
     alert("cbrnum "+cbrnum); 

     formName.method="POST"; 
     formName.action="/support/residential/outage/serviceOutage?cbrnum="+cbrnum+"&btn="+btn+"&outagetkt="+outagetkt; 
     formName.submit(); 
    } 
} 

的下面是人体内容

<body> 
    <%int nc=0; %> 

     <div id="KMU_alerts"> 
      Contact me with alternative notification phone number1. 
      <%nc++; %> 
       <form name="kmuform<%=nc%>" id="kmuform<%=nc%>" action="javascript:validatecbr(document.kmuform<%=nc%>,'outage');"> 
        <input type="text" name="cbr1" id="cbr11" 
        onpaste="return false;" style="width: 35px;" maxlength="3" 
        size="2" /> 

        <input type="text" name="cbr2" id="cbr22" 
        onpaste="return false;" style="width: 35px;" maxlength="3" 
        size="2" /> 

        <input type="text" name="cbr3" id="cbr33" 
        onpaste="return false;" style="width: 35px;" maxlength="4" 
        size="2" /> 

        <input id="clickMe" type="button" value="Submit" onclick="javascript:validatecbr(document.kmuform<%=nc%>,'outage');"/> 
       </form> 
     </div> 

     <div id="KMU_alerts"> 
      Contact me with alternative notification phone number2. 
      <%nc++; %> 
      <form name="kmuform<%=nc%>"> 
       <input type="text" name="cbr1" id="cbr11" 
       onpaste="return false;" style="width: 35px;" maxlength="3" 
       size="2" /> 

       <input type="text" name="cbr2" id="cbr22" 
       onpaste="return false;" style="width: 35px;" maxlength="3" 
       size="2" /> 

       <input type="text" name="cbr3" id="cbr33" 
       onpaste="return false;" style="width: 35px;" maxlength="4" 
       size="2" /> 

       <input id="clickMe" type="button" value="Submit" onclick="javascript:validatecbr(this.form,'outage');"/> 
      </form> 
     </div> 
</body> 

但代码表示“‘cbr11.value’为空或不是对象”在“formName.cbr11.value;”这条线..

有人可以告诉我如何将表单名称传递给一个js函数,并用它来读取表单值。

回答

2

var formName = form.name;这里

表格名称是一个字符串,而不是一个HTMLFormElement对象

访问使用表单对象

var cbr1 = form.cbr11.value; 
+0

它的工作感谢:) –

0

由于减少的部分代码的表单字段的值,你可以参考以下@Phanimadhavi Vasantala 。

function validatecbr(form,outagetkt) 
{ 

    var cbr1 = form.cbr11.value; 
    var cbr2 = form.cbr22.value; 
    var cbr3 = form.cbr33.value; 
    var cbrnum = cbr1+cbr2+cbr3; 
    if(cbr1.length !=3){ 
     dispalyErrorAndFocus(form.cbr11); 
    } 
    else if(cbr2.length !=3){ 
     dispalyErrorAndFocus(form.cbr22); 
    } 
    else if(cbr3.length !=4){ 
     dispalyErrorAndFocus(form.cbr33); 
    } 
    else 
    { 
     alert("cbrnum "+cbrnum); 

     formName.method="POST"; 
     formName.action="/support/residential/outage/serviceOutage?cbrnum="+cbrnum+"&btn="+btn+"&outagetkt="+outagetkt; 
     formName.submit(); 
    } 
} 


function dispalyErrorAndFocus(CompRef) { 
    alert("Please Enter 10 digit Account telephone number"); 
    CompRef.focus(); 
    return false; 
} 

即使您可以,将错误消息设置为某个变量并使其通用。

谢谢

+0

这看起来很整洁。 –

相关问题