2012-11-01 2 views
2

안녕 난 내보기에 (양을 선택하는) 텍스트 상자를 생성하기 위해 아래의 코드를 사용하고 쇼핑 cart.I 유사한 프로젝트를 진행하고 모든 사람 :mvc3에서 동적 텍스트 상자에 자바 스크립트 유효성 검사를 통과

@foreach (var item in Model) 
    { 
     <tr> 
     <td align="left" class="Text_nocolor"> 
     @Html.DisplayFor(modelItem=>item.ProductName)         
     /td> 
     <td align="right" class="Text_nocolor" valign="top"> 
     @using (Html.BeginForm("Update", "Cart", new { UserID = Request.QueryString["UserID"] }, FormMethod.Post, new { id = "myForm" })) 
     {    
    <input id="Quantity" type="text" class="Text_nocolor" name="Quantity" value="@item.Quantity" @*onblur="return NumberOnlyTextBox(event)"*@ onchange="return allownumbers()" maxlength="3"/> 
@Html.Hidden("unitrate", item.Rate)    
                <input type="submit" value="Edit" class="Text_nocolor" onkeypress="return validateNumbersOnly(e);" onclick="return RegainFocus();" /> 
     } 

위의 코드에서 "id = Quantity"는 텍스트 상자를 나타냅니다. 그리고 난 숫자에만이 텍스트 상자에 대한 자바 스크립트를 작성했습니다. 이 내 자바 스크립트 함수입니다 :

<script type="text/javascript"> 
     function RegainFocus() { 
      if ((document.getElementById("Quantity").value).length == 0) { 
       document.getElementById("Quantity").focus(); 
       alert("Quantity cannot be empty"); 
       document.getElementById("Quantity").value = document.getElementById("Quantity").defaultValue; 
       return false; 
      } 
      else if ((document.getElementById("Quantity").value) > 100) { 
       alert("There is no enough inventory for this product to fulfill your order"); 
       document.getElementById("Quantity").value = document.getElementById("Quantity").defaultValue; 
       return false; 
      } 
     } 
    </script> 
    <script type="text/javascript"> 
     function allownumbers() { 
      //  var elements = document.getElementsByName('Quantity'); 
//   for() 
      var val = parseInt(document.getElementsByName("Quantity").item(1).value); 
      alert(val); 
      if (!val || val < 1) { 
       alert('Please enter a valid value'); 
       document.getElementById("Quantity").value = document.getElementById("Quantity").defaultValue; 
       return false; 
      } 
      document.getElementById("Quantity").value = val; 
      return true; 
     } 
    </script> 

내 문제는 첫 번째 텍스트 상자이 아닌 다른 사람을 위해에만 작동 검증. 누구나 솔루션을 제공 할 수 있습니까? 당신이

답변

0

다음 코드를 사용하여 시도 감사 :

onkeypress="return validateNumbersOnly(this);" onclick="return RegainFocus(this);" 
... 
function RegainFocus(obj) 
{ 
    if ((document.getElementById(obj).value).length == 0) { 
    .. 
} 
.. 

는 도움이되기를 바랍니다.

관련 문제