清除 JQuery 中的文本字段值

Posted

技术标签:

【中文标题】清除 JQuery 中的文本字段值【英文标题】:Clear text field value in 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 年了,还在继续 :) 【参考方案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 代码。

以上是关于清除 JQuery 中的文本字段值的主要内容,如果未能解决你的问题,请参考以下文章

如何将光标设置到 Internet Explorer 中文本 INPUT 字段的字符串值中的特定位置?

Cocoa 绑定,绑定到文本字段的默认值中的字符串值。如何以编程方式读取此字符串?

将文本输入到另一个输入字段时清除输入字段

如何使用Jquery清除html输入文本字段的内容

清除 LiveSearchGridPanel 中的搜索文本字段

ACF 默认值中的简码仅在保存帖子后才有效