【问题标题】:Clear text field value in JQuery清除 JQuery 中的文本字段值
【发布时间】:2012-06-12 16:30:34
【问题描述】:

我知道这是一个简单的问题,但由于某种原因,这对我不起作用。我有一个每次更改下拉菜单时都会触发的功能。这是假设获取文本字段的当前值的相关代码,如果存在值,请清除它包含在 .change 函数中:

var doc_val_check = $('#doc_title').attr("value");
    if (doc_val_check.length > 0) {
        doc_val_check == "";
    }

我觉得我错过了一些非常简单的东西。

【问题讨论】:

  • 五年后的今天,虽然我现在可以在我的代码中发现问题,但我很高兴看到这个问题仍然对许多其他人有所帮助。 :)
  • 2019 年了,还在继续 :)

标签: javascript jquery forms input


【解决方案1】:

试试这个:

function checkValue(){
  var value = $('#doc_title').val();
  if (value.length > 0) {
        $('#doc_title').val("");
        $('#doc_title').focus();  // To focus the input 
    }
    else{
    //do something
    }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<input type="text" id="doc_title" value="Sample text"/>
<button onclick="checkValue()">Check Value</button>
</body>

【讨论】:

    【解决方案2】:

    如果你想让元素具有可见的空白文本,只需这样做:

    $('#doc_title').html('&nbsp;');
    

    【讨论】:

      【解决方案3】:
      $('#[element id]').val(null);
      

      $('.[element class]').val(null);
      

      【讨论】:

        【解决方案4】:

            First Name: <input type="text" autocomplete="off" name="input1"/>
            <br/>
            Last Name: <input type="text" autocomplete="off" name="input2"/>
            <br/>
            <input type="submit" value="Submit" />
        </form>
        

        【讨论】:

        • 使用 autocomplete="off"
        • 它不适用于明文 - 我们必须使用 jquery 来获取明文
        【解决方案5】:

        我们可以用它来清除文本

        $('input[name="message"]').val("");  

        【讨论】:

          【解决方案6】:

          您可以使用此行清除它

          $('#TextBoxID').val("");
          

          【讨论】:

            【解决方案7】:

            使用jQuery.prototype.val 获取/设置字段值:

            var value = $('#doc_title').val();    // get value
            $('#doc_title').val('');    // clear value
            

            【讨论】:

              【解决方案8】:

              在大多数情况下,您只需设置 .val() 方法。所有答案都非常准确,只是想将我的结果发布给可能需要通过呈现的客户端 ID 设置值的任何人。

               $('#' + '<%= doc_title.ClientID %>').val(null);
              

              【讨论】:

                【解决方案9】:

                简单来说,你可以使用下面的代码来清除表单中的所有文本字段、文本区域、下拉菜单、单选按钮、复选框。

                function reset(){
                    $('input[type=text]').val('');  
                    $('#textarea').val(''); 
                    $('input[type=select]').val('');
                    $('input[type=radio]').val('');
                    $('input[type=checkbox]').val('');  
                }
                

                【讨论】:

                  【解决方案10】:
                  doc_val_check == "";   // == is equality check operator
                  

                  应该是

                  doc_val_check = "";    // = is assign operator. you need to set empty value
                  
                                         // so you need =
                  

                  您可以像这样编写完整的代码:

                  var doc_val_check = $.trim( $('#doc_title').val() ); // take value of text 
                                                                       // field using .val()
                      if (doc_val_check.length) {
                          doc_val_check = ""; // this will not update your text field
                      }
                  

                  要使用 "" 更新您的文本字段,您需要尝试

                  $('#doc_title').attr('value', doc_val_check); 
                  // or 
                  $('doc_title').val(doc_val_check);
                  

                  但我认为您不需要上述过程。


                  简而言之,只有一行

                  $('#doc_title').val("");
                  

                  注意

                  .val() 用于设置/获取文本字段中的值。有参数时作为setter,没有参数时作为getter。

                  阅读更多关于.val()

                  【讨论】:

                  • 调用doc_val_check = "" 不会更新元素的value 属性;您最终会得到一个与元素的 value 属性完全分离的空字符串变量。
                  • 一段时间后所有答案的总结!
                  • @Tooraj 在我的回答中,我试图解释所有方面,如果你认为它是一个总结,那么它就是那个,但预计不会投反对票
                  • @Tooraj 谢谢兄弟,我希望得到大家的建议并尝试更新自己。
                  【解决方案11】:

                  如果要清除文本字段,请使用:

                  $('#doc_title').val("");
                  

                  【讨论】:

                  • 因为我在回显 php 会话值,所以 $('#doc_title').attr("value", "");没和我一起工作。
                  【解决方案12】:

                  您正在将doc_val_check 与一个空字符串进行比较。您想将空字符串分配给doc_val_check

                  应该是这样的:

                  doc_val_check = "";

                  【讨论】:

                    【解决方案13】:

                    你需要的是:

                    if ($('#doc_title').val()) {
                      $('#doc_title').val('');
                    }
                    

                    【讨论】:

                    • .html() 不适用于此处。
                    • @PraveenKumar 是的,没错。
                    【解决方案14】:

                    如果你使用的是 jQuery,那么你可以使用这个:

                    // var doc_val_check = $('#doc_title').val(); - No need of this!
                    if ($('#doc_title').val().length > 0) {
                        $('#doc_title').val("");
                    }
                    

                    【讨论】:

                      【解决方案15】:

                      而不是所有这些:

                      $('#doc_title').attr("value", "");
                      

                      【讨论】:

                      • 他可以使用.val()函数。
                      • 可以并且应该。值是属性,不是属性;使用.attr() 设置属性并不能绝对保证您会设置该属性。
                      • 这就像一个魅力。谢谢你。一旦我被允许,我会选择这个作为答案。
                      • @Yuschick 可以更简单。
                      • 使用.val() 的答案更好。这将是使用 attr 更改值的非典型 jQuery 代码。
                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2011-10-16
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2018-08-13
                      • 1970-01-01
                      相关资源
                      最近更新 更多