6

我正在根据输入更改元素的文本:

$("input#txtName").keyup(function(){
      $(".website-info h3 strong").text($(this).val());
    });
$("input#txtUrl").keyup(function(){
      $(".website-info h3 small").text($(this).val());
    });

它有效,但我想在文本为空或用户没有输入任何内容以防止空白时立即显示默认值。我尝试了这个if... is.(:empty)条件,但它没有帮助,因为.text似乎没有设置默认值。

4

3 回答 3

7

执行此操作的一种简洁且非常标准的方法是使用||运算符。

$("input#txtName").keyup(function(){
      $(".website-info h3 strong").text($(this).val() || "Default text");
    });
于 2013-03-27T21:15:40.703 回答
1

考虑使用placeholder输入元素的 HTML 属性。在 HTML 中设置属性

<input type="text" id="txtName" placeholder="default text here" />

或在页面加载后使用 jQuery

$("input#txtName").attr("placeholder", "default text here");

这是元素上的 MDN 页面<input>

于 2013-03-27T21:28:36.550 回答
0

将您的两个文本分配更改为以下变体:

$(".website-info h3 small").text(($(this).val().length) ? $(this).val() : "Your default value here");

请注意,如果用户输入空格,这不会抛出默认值 - 如果您想这样做,您需要相应地编辑三元运算符。

于 2013-03-27T21:17:47.613 回答