清除 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(' ');
【讨论】:
【参考方案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 绑定,绑定到文本字段的默认值中的字符串值。如何以编程方式读取此字符串?