jQuery .val()没有从一个输入中获取值,其余的则没有

时间:2013-08-20 22:29:56

标签: jquery asp.net-mvc asp.net-mvc-3 jquery-ui razor

我需要验证ASP MVC3视图中的许多字段,并尝试使用jQuery来执行此操作。 jQuery .val()方法可以很好地从输入字段中提取accountNumberrefNumberownerMaster,但agentId字段的值始终为{{ 1}}无论如何。

我一遍又一遍地查看我的代码中的拼写错误并且没有找到它。希望另一组眼睛能够成功。

仅供参考 - 如果我将""下面的.val()更改为$('#AgentId').val(),则隐藏方法可以正常工作,并且字段会消失,这意味着我可以正确输入选择器。

的jQuery

.hide()

ASP MVC Razor

function ValidateFields(transactionType) {
    var msg = "";
    var refNumber = $('#RefNumber').val();
    var ownerMaster = $('#OwnerMasterAgentId').val();
    var accountNumber = $('#AccountNumber').val();
    var agentId = $('#AgentId').val(); //When the agentId variable an selector + val() are
                                       //evaluated here both have a value of ""

HTML

                <div class="M-editor-label">
                    @Html.LabelFor(model => model.RefNumber)
                    <span class="alwaysReq"> @Html.Raw("*")</span>
                </div>
                <div class="M-editor-field">
                    @Html.TextBoxFor(model => model.RefNumber, new { maxlength = 9, @class = "staticData" })
                </div>
                <div class="M-editor-label">
                    @Html.LabelFor(model => model.OwnerMasterAgentId)
                    <span class="req">@Html.Raw("*")</span> 
                </div>
                <div class="M-editor-field">
                    @Html.TextBoxFor(model => model.OwnerMasterAgentId, new { maxlength = 8, @class="staticData" })
                </div>
                    <div class="M-editor-label">
                        @Html.LabelFor(model => model.AccountNumber)
                        <span class="req">@Html.Raw("*")</span>
                    </div>
                    <div class="M-editor-field">
                        @Html.TextBoxFor(model => model.AccountNumber, new { maxlength = 17 })
                    </div>
                    <div class="M-editor-label">
                        @Html.LabelFor(model => model.AgentId)
                        <span class="req">@Html.Raw("*")</span>
                    </div>
                    <div class="M-editor-field">
                        @Html.TextBoxFor(model => model.AgentId, new { maxlength = 8 })
                    </div>

2 个答案:

答案 0 :(得分:0)

我没有看到问题,

  1. 但你有另一个html元素在你的页面
  2. 中有id = AgentId吗?
  3. 当您更改字段的文本时,它会在firebug中更改
  4. 实际上,您不必创建自己的验证,您可以使用数据注释验证 它提供了服务器端和客户端验证

答案 1 :(得分:-1)

试试这个

var agentId=$('#@Html.FieldIdFor(model => model.AgentId)').val();