如果输入值为空,则使用JavaScript分配一个值为“empty”。

16

我有一个输入框,如果它为空,我希望它的值为“空”,但如果输入了任何值,我希望该值为输入的值。我想使用JavaScript实现这一点,你有什么想法吗?

更新:抱歉,我觉得我没有解释得很清楚。我不是指占位符文本,而是指它的捕获值。因此,如果它为空,则应为其捕获的val()值为“empty”,如果填写了内容,则捕获的val()值应为该val()


https://dev59.com/P3VD5IYBdhLWcg3wDHDm - Joe
6个回答

30

如果你在使用纯JS,你可以这样做:

var input = document.getElementById('myInput');

if(input.value.length == 0)
    input.value = "Empty";

这是一个演示:http://jsfiddle.net/nYtm8/


最短和最简单的胜利:)如果我们将 input.value.length == 0 改为 input.value == '',这会有什么不同吗? - Maverick
我通常更喜欢针对数字进行测试,而不是字符串,但当然,你也可以这样做 :) - Jamie Dixon
2
由于"value"属性始终是一个字符串,因此仅使用!input.value也始终是正确的(因为只有空字符串强制转换为"false")。 - katspaugh
在检查相等性时,始终使用 "==="。"==" 会导致意外的行为。 - Henry Lynx
== 不会导致意外行为。关于使用 ===== 的讨论是一种强制转换。如果你想利用强制转换的能力,那么你会想要使用 ==,只有当你不知道它的作用时,它的行为才是意外的。规范非常清楚。不过,你说我在这里应该使用 === 是正确的。 - Jamie Dixon
显示剩余3条评论

4
我猜这就是你想要的...
当表单提交时,检查值是否为空,如果为空,则发送值=空。
如果是这样,您可以使用jQuery执行以下操作。
$('form').submit(function(){
    var input = $('#test').val();
    if(input == ''){
         $('#test').val('empty');
    }    
});

HTML

<form> 
    <input id="test" type="text" />
</form>

http://jsfiddle.net/jasongennaro/NS6Ca/

在框中单击光标,然后按“Enter”键即可查看表单提交的值。


谢谢Jason,不过我想尝试只用JavaScript来完成它 :) - Maverick

3
这可以通过HTML5的placeHolder或使用JavaScript来完成。 请查看此帖子

2

您可以为表单的onSubmit事件设置回调函数,并检查每个字段的内容。如果它不包含任何内容,那么您可以使用字符串“empty”填充它:

<form name="my_form" action="validate.php" onsubmit="check()">
    <input type="text" name="text1" />
    <input type="submit" value="submit" />
</form>

在你的JS中:

function check() {
    if(document.forms["my_form"]["text1"].value == "")
        document.forms["my_form"]["text1"].value = "empty";
}

1
你可以这样做:
var getValue  = function (input, defaultValue) {
    return input.value || defaultValue;
};

0

我认为解决这个问题最简单的方法,如果您只需要在1或2个框中使用它,就是使用HTML输入的“onsubmit”函数。

看一下这个,我将解释它的作用:

<input type="text" name="val" onsubmit="if(this == ''){$this.val('empty');}" />

所以我们创建了HTML文本框,为其分配了一个名称(在这种情况下是“val”),然后我们添加了onsubmit代码,此代码检查当前输入框是否为空,如果为空,则在表单提交时将其填充为单词empty。

请注意,当使用HTML“Placeholder”标记时,此代码也应该完美地运行,因为占位符标记实际上并没有为输入框分配值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接