我抓住输入框的值并将其作为查询字符串传递给URL。我不想获取默认值“输入关键字(地址....),其被控制显示或隐藏以下内容:
//**onClick and OnLostFocus (focus and blur) events on textareas and input textboxes**
$('input[type="text"], textarea').focus(function () {
defaultText = $(this).val();
$(this).val('');
});
$('input[type="text"], textarea').blur(function () {
if ($(this).val() == "") {
$(this).val(defaultText);
}
});
<input name="KeywordBox" class="BasicSearchInputBox" type="text" size="300" value="Enter Keywords (address,city and state OR zipcode)"/>
如何不抓取默认文本而只是用户输入?在jquery?
答案 0 :(得分:1)
我通常会在输入字段中添加一些默认类名,然后在用户输入时清除它。这样我可以判断默认的“水印”文本是否存在,或用户数据。
答案 1 :(得分:0)
执行此操作的正确方法是对旧版浏览器使用placeholder
和后备
对于您当前的问题,您可以在获取值时检查该默认文本。类似的东西:
$('form').submit(function(){
if (~$('input').val().indexOf(defaultText)) {
// Not found, do your ajax stuff
}
});
答案 2 :(得分:0)
上面的代码并没有真正做默认值(占位符)。如果有人首先在字段中输入“任何内容”,然后清除字段中的值,则代码会将其重置为“任何内容”而不是“输入关键字...”
您需要一个像http://archive.plugins.jquery.com/project/defaultvalue
这样的插件<input placeholder="Enter a username…" type="text">
<input placeholder="…and a password" type="password">
<script>
$(' [placeholder] ').defaultValue();
</script>
如果您真的想自己编写,最简单的步骤是
答案 3 :(得分:0)
您可以使用以下内容执行此操作:
function togglePrompt() {
if (this.value == this.defaultValue) {
this.value = '';
} else if (this.value == '') {
this.value = this.defaultValue;
}
}
window.onload = function() {
var el = document.getElementById('inp0');
el.onfocus = togglePrompt;
el.onblur = togglePrompt;
}
<input value="Enter text..." id="inp0">