.val()没有抓取输入到输入中的值

时间:2014-09-02 15:17:43

标签: jquery input

从两个输入中获取当前值时出现问题。在尝试获取当前值时,我一直未定义。从来没有遇到过这个问题,似乎无法得到这个。

<label id="lblName" for="txtVehicleName"  class="vehicle_label">Vehicle Name:</label>
<input type="text" runat="server" id="txtVehicleName" name="txtVehicleName" class="vehicle_input_required" maxlength="200" value="" />
<span id="qVName" class="question">?</span>
<div class=".clearfix"></div>

<label id="lblCategorization" for="txtCategorization"  class="vehicle_label">Categorization:</label>
<input type="text" runat="server" id="txtCategorization" class="vehicle_input_required" />
<span id="qCat" class="question">?</span>
$(document).ready(function () {
   $("#btnNext_VI").on("click", function () {
      event.preventDefault ? event.preventDefault() : event.returnValue = false;
      var Categorization = $("#txtCategorization").val();
      var VehicleName = $("#txtVehicleName").val();
      alert(Categorization);
      alert(VehicleName);

      if (validate("VI")) {
         $("#divVI").fadeOut(function () {
            $("#divPU").fadeIn(100);
         });
      }
   });
});

关于我做错了什么建议?

2 个答案:

答案 0 :(得分:3)

您的文本框是服务器字段,请使用ClientID属性:

var Categorization = $("#<%= txtCategorization.ClientID %>").val();

如果您检查页面呈现input,您会注意到该ID不是txtCategorization - 而是服务器生成的ID。

答案 1 :(得分:1)

您可以设置ClientIDMode="Static"(ASP.Net 4.0+),以便不会更改控件ID。您也可以在外部js文件中使用它

<input type="text" runat="server" id="txtCategorization" ClientIDMode="Static" />

ASP.Net&lt; 4.0,但是这行不能在外部js文件中使用,因为它使用内联的asp.net语法

$("#<%= txtCategorization.ClientID %>").val()