查找与使用JQuery
我有下面的代码,当表单提交执行一定值的输入字段:查找与使用JQuery
$('input[value=enter highlight]').val('');
从本质上讲,它搜索通过表单包含的值的所有文本字段“中输入亮点”并删除该文本。问题是,当文本字段中的HTML代码如下:
<input type="text" value="enter highlight"/>
和用户手动更改表单中这个值,JQuery的仍然承认为是在HTML设置的原始值字段的值代码(即'输入突出显示')并将字段值重置为空白,即使用户在字段中输入了不同的值。非常意外的行为。
任何想法我需要做什么来确保JQuery将考虑用户在清除值之前在文本框中输入的任何更改的值?
非常感谢!
不知道这是否是问题,但你的jQuery选择应该有报价在它
$('input[value="enter highlight"]').val('');
做不到这一点,试试这个:
$('input[value="enter highlight"]').each(function() {
if ($(this).val() == "enter highlight") $(this).val('');
});
谢谢,但我尝试过使用和不使用引号,而JQuery仍然无法识别用户输入的新值。 – 2011-05-10 04:24:40
我依稀记得读的是选择工作的关原始HTML源代码中的值,所以不要选择DOM加载后所做属性值的更改。
将其更改为一个明确的循环应该工作,虽然它不够简明:
$('input').each(function() {
if($(this).val()=="enter highlight") {
$(this).val('');
}
});
您所期望的行为似乎只在jQuery的1.2.6或下方(小提琴测试)工作。
所有其他版本清除了原始值。这很可能是因为[value=""]
可能会检查原始属性值而不是当前值。
我已经在这里安装了一个小提琴,你可以看看:http://jsfiddle.net/jomanlk/4PBTZ/只需更改它的jQuery版本。
我建议你使用each()
来电。
$('input:text').each(function(){
if ($(this).val() == 'enter highlight') {
$(this).val('');
}
});
你能展示你的整个提交代码吗? – corroded 2011-05-10 04:16:02
使用jQuery 1.6? – 2011-05-10 04:21:58