【问题标题】:How to set value of input text using jQuery如何使用 jQuery 设置输入文本的值
【发布时间】:2012-05-23 13:56:15
【问题描述】:

我有一个输入文本是这样的:

<div class="editor-label">
    @Html.LabelFor(model => model.EmployeeId, "Employee Number")
</div>

<div class="editor-field textBoxEmployeeNumber">
    @Html.EditorFor(model => model.EmployeeId) 
    @Html.ValidationMessageFor(model => model.EmployeeId)
</div>

产生以下html

<div class="editor-label">
  <label for="EmployeeId">Employee Number</label>
</div>

<div class="editor-field textBoxEmployeeNumber">
  <input class="text-box single-line" data-val="true" data-val-number="The field EmployeeId must be a number." data-val-required="The EmployeeId field is required." id="EmployeeId" name="EmployeeId" type="text" value="" />

  <span class="field-validation-valid" data-valmsg-for="EmployeeId" data-valmsg-replace="true"></span>
</div>

我想使用 jquery 设置这个输入文本的值,所以我这样做了:

<script type="text/javascript" language="javascript">
    $(function() {
        $('.textBoxEmployeeNumber').val("fgg");
    });
</script> 

但是,它不起作用...我的语法有什么错误?

【问题讨论】:

  • 我在表单中使用了输入文本......

标签: javascript jquery html asp.net-mvc-3


【解决方案1】:

纯js会更简单

EmployeeId.value = 'fgg';

EmployeeId.value = 'fgg';
<div class="editor-label">
  <label for="EmployeeId">Employee Number</label>
</div>

<div class="editor-field textBoxEmployeeNumber">
  <input class="text-box single-line" data-val="true" data-val-number="The field EmployeeId must be a number." data-val-required="The EmployeeId field is required." id="EmployeeId" name="EmployeeId" type="text" value="" />
  
  <span class="field-validation-valid" data-valmsg-for="EmployeeId" data-valmsg-replace="true"></span>
</div>

【讨论】:

    【解决方案2】:

    这是为了上课

    $('.nameofdiv').val('we are developers');
    

    对于 ID

    $('#nameofdiv').val('we are developers');
    

    现在如果你有一个输入形式,你可以使用

    $("#form li.name input.name_val").val('we are awsome developers');
    

    【讨论】:

      【解决方案3】:

      这是文件上传的另一种变体,它具有比默认文件上传浏览按钮更好看的引导按钮。这是html:

      <div class="form-group">
              @Html.LabelFor(model => model.FileName, htmlAttributes: new { @class = "col-md-2  control-label" })
              <div class="col-md-1 btn btn-sn btn-primary" id="browseButton" onclick="$(this).parent().find('input[type=file]').click();">browse</div>
              <div class="col-md-7">
                  <input id="fileSpace" name="uploaded_file"  type="file" style="display: none;">   @*style="display: none;"*@
                  @Html.EditorFor(model => model.FileName, new { htmlAttributes = new { @class = "form-control", @id = "modelField"} })
                  @Html.ValidationMessageFor(model => model.FileName, "", new { @class = "text-danger" })
              </div>
          </div>
      

      这是脚本:

              $('#fileSpace').on("change", function () {
              $("#modelField").val($('input[name="uploaded_file"]').val());
      

      【讨论】:

        【解决方案4】:

        使用jQuery,我们可以使用如下代码:

        按输入名称选择:

        $('input[name="textboxname"]').val('some value')
        

        按输入类选择:

        $('input[type=text].textboxclass').val('some value')
        

        通过输入ID选择:

        $('#textboxid').val('some value')
        

        【讨论】:

          【解决方案5】:

          对于具有 id 的元素

          <input id="id_input_text16" type="text" placeholder="Ender Data"></input>
          

          您可以将值设置为

          $("#id_input_text16").val("testValue");
          

          文档here

          【讨论】:

            【解决方案6】:
            $(document).ready(function () {
                $('#EmployeeId').val("fgg");
            
                //Or
                $('.textBoxEmployeeNumber > input').val("fgg");
            
                //Or
                $('.textBoxEmployeeNumber').find('input').val("fgg");
            });
            

            【讨论】:

              【解决方案7】:

              您的选择器正在检索文本框周围的 &lt;div class='textBoxEmployeeNumber'&gt;,而不是其中的输入。

              // Access the input inside the div with this selector:
              $(function () {
                $('.textBoxEmployeeNumber input').val("fgg");
              });
              

              看到输出 HTML 后更新

              如果 ASP.NET 代码可靠地输出带有 id 属性 id='EmployeeId' 的 HTML &lt;input&gt;,您可以更简单地使用:

              $(function () {
                $('#EmployeeId').val("fgg");
              });
              

              如果失败,您将需要在浏览器的错误控制台中验证您没有其他导致失败的脚本错误。上面第一个例子works correctly in this demonstration.

              【讨论】:

              • 试过了,不工作....也试过 .textBoxEmployeeNumber input=[type="text"]...也不工作
              • @using (Html.BeginForm()) { @Html.ValidationSummary(true)
                Reservation .........
                @Html.LabelFor(model => model.EmployeeId, "Employee Number")
                @Html.EditorFor(model => model.EmployeeId) @ Html.ValidationMessageFor(model => model.EmployeeId)
                ..........
              • @RojBeraña 浏览器是否读取您的 $(document).ready 函数中的代码?在那里放置警报:
              • 有类似的问题,浏览器中可以看到值,但是当我用F12检查代码时,保存后有value=""和空文件。
              猜你喜欢
              • 1970-01-01
              • 2011-02-19
              • 2014-04-01
              • 1970-01-01
              • 2011-09-07
              • 1970-01-01
              • 1970-01-01
              • 2014-01-29
              • 1970-01-01
              相关资源
              最近更新 更多