7

我正在寻找一种优雅的方法来检查输入值是否为空且不是默认值。

例如,假设我们输入了 value Username,这是一个默认值,一旦用户点击这个输入字段Username就会被删除,这样用户就可以输入他想要的内容。为了清楚起见,这是加载页面时的外观:

<input type="text" class="defaultValue" value="Username" />

现在默认情况下,这个字段永远不会为空,除非用户会做一些事情让它为空,所以只是为了确保我需要检查这两件事。我这样做的方式非常简单:

if($(".defaultValue").val().length == 0 || $(".defaultValue").val() == "Username")
   alert("Please enter your username");

所以这行得通,但看起来很难看。而且通常我需要处理巨大的表单,因此我的代码变得非常丑陋且难以管理,有什么办法可以改进吗?

谢谢。

4

2 回答 2

17

尝试:

if (this.value == '' || this.value == this.defaultValue) {
  // value is empty or is default value
}
于 2013-03-06T22:17:18.800 回答
4

尝试编写一个辅助函数来为您执行此检查。

var isEmptyOrDefault = function(field, default) {
    var value = $(field).val();
    return (value.length === 0 || value === default);
};

所以你可以使用它:

if (isEmptyOrDefault($('.defaultValue'), 'Username')) {
    alert("Please enter your username");
}
于 2013-03-06T22:18:44.270 回答