2013-05-15 39 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

這看起來很整潔。 –

相關問題