如果输入文本为空,如何设置默认文本?

5

我该如何使用jQuery完成这个操作?我已经使用了change事件,但是如果我提交或重置表单,文本就不会再次设置。我需要在输入框内显示一个文本(它是一个日期选择器,所以我需要显示一个日期)。

怎么做呢?

谢谢!

5个回答

3
您可以不使用Javascript来实现此操作。使用HTML5更加简单易行:
<input type="text" placeholder="default text" />

我需要使用JavaScript来完成它,因为在重置表单后日期会改变,JavaScript需要重新计算日期,这是一个“ajax”应用程序。 - Dail
我不熟悉jQuery,所以我会用Prototype写成这样:$('idOfInputTextBox').writeAttribute('placeholder', theChangedDateString); - JoJo

1

这是我通常的做法。

<form id="myform">
    <input name="box" type="text" value="Type here">
</form>

_

$("input[name='box']", "#myform").bind("blur focus", function() {
    if ($(this).val() == "" ) {
        $(this).val("Type here");
    }else if ($(this).val() == "Type here" ) {
        $(this).val("");
    }
});

这是一个展示它如何工作的范例链接:http://jsfiddle.net/cR6P8/1/ 如果需要的话,它也可以绑定到加载事件上。

你看过这个了吗?重置按钮完全可以使用,看这里:http://jsfiddle.net/cR6P8/3/ - 如果浏览器后退按钮导致表单字段回到默认值,谁会想要呢?如果有人正在提交表单,然后点击浏览器的后退按钮,说明他们可能输入了错误的信息,不想再重新输入一遍,只想更改已经输入的内容。这是那些默认浏览器操作之一,不应该进行修改,但如果真的必要,我想绑定到浏览器历史记录可能是有可能的。 - adeneo

-1
$('#textbox').blur(function() {

if( $('#textbox').val() == "" ) {
    //show the date
}


}

重置后,“模糊”事件未被调用。 - Dail
如果您想在表单提交后进行检查,只需在文档准备就绪时进行检查即可。 - Johan

-1

你可以这样做

$(document).ready(function(){
if ($("input[id$='your textbox id']").val().length == 0 || $("input[id$='your textbox id']").val().trim() == " ") {
$("input[id$='your textbox id']").val("something");
});

document.ready会在每次页面加载时调用,因此即使用户删除它或发送/重置表单,这也应该起作用。 - Mac
好的,document.ready并不是主要部分,主要部分是替换文本,您可以在重置表单时添加相同的内容。 - Mac

-1

实际上,你的问题不是很清楚,但是...

var yourVaribale;

$('yourTextSelector').val(yourVariable)

您可以像上面那样设置输入文本的值


如果文本为空,我需要设置该文本,因此在开始时...好的,但是如果用户将其删除或发送/重置表单,则需要再次显示它。不幸的是,在重置表单后,模糊事件不会被调用。 - Dail

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