如何不获取inputbox的默认值

时间:2012-02-29 22:10:53

标签: javascript jquery inputbox

我抓住输入框的​​值并将其作为查询字符串传递给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?

4 个答案:

答案 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>

如果您真的想自己编写,最简单的步骤是

  • 在输入字段中添加占位符属性
  • onfocus:如果input.value等于input.placeholder
  • ,则清除input.value
  • onblur:如果input.value为空,则将input.value设置为input.placeholder

答案 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">