Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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验证传递给mvc3中的动态文本框_Javascript_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

将javascript验证传递给mvc3中的动态文本框

将javascript验证传递给mvc3中的动态文本框,javascript,asp.net-mvc,asp.net-mvc-3,Javascript,Asp.net Mvc,Asp.net Mvc 3,大家好,我正在从事一个类似购物车的项目。我正在使用以下代码在我的视图中生成文本框(用于选择数量): @foreach (var item in Model) { <tr> <td align="left" class="Text_nocolor"> @Html.DisplayFor(modelItem=>item.ProductName)

大家好,我正在从事一个类似购物车的项目。我正在使用以下代码在我的视图中生成文本框(用于选择数量):

    @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();" />
       }
@foreach(模型中的变量项)
{
@Html.DisplayFor(modelItem=>item.ProductName)
/td>
@使用(Html.BeginForm(“更新”、“购物车”、新的{UserID=Request.QueryString[“UserID”]}、FormMethod.Post、新的{id=“myForm”}))
{               
@Html.Hidden(“单位费率”,item.Rate)
}
在上面的代码中,“id=Quantity”表示文本框。 我已经为这些文本框编写了一个只用于数字验证的javascript。 以下是我的javascript函数:

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

函数RegainFocus(){
if((document.getElementById(“Quantity”).value).length==0){
document.getElementById(“数量”).focus();
预警(“数量不能为空”);
document.getElementById(“数量”).value=document.getElementById(“数量”).defaultValue;
返回false;
}
如果((document.getElementById(“Quantity”).value)>100){
警报(“此产品的库存不足,无法满足您的订单”);
document.getElementById(“数量”).value=document.getElementById(“数量”).defaultValue;
返回false;
}
}
函数allownumbers(){
//var elements=document.getElementsByName(“数量”);
//for()
var val=parseInt(document.getElementsByName(“数量”).item(1.value);
警报(val);
如果(!val | | val<1){
警报(“请输入有效值”);
document.getElementById(“数量”).value=document.getElementById(“数量”).defaultValue;
返回false;
}
document.getElementById(“数量”).value=val;
返回true;
}
我的问题是验证只对第一个文本框有效,而对其他文本框无效。
任何人都可以提供解决方案吗?谢谢您

请使用以下代码片段进行尝试:

onkeypress="return validateNumbersOnly(this);" onclick="return RegainFocus(this);"
...
function RegainFocus(obj)
{
  if ((document.getElementById(obj).value).length == 0) {
    ..
}
..
希望能有帮助