-1

我有 jQuery 动态创建的输入,我为其设置了 init 值,并且我希望它保持该值作为默认值(将在重置表单后再次显示)。我四处寻找,但找不到解决方案。

为了清楚起见,在有人对我的问题进行评分后,这里的默认值不是存储在占位符中的值(当输入聚焦时会消失),它是真实的、可编辑的文本!

我找到了解决方案!重置表单时,Web 浏览器会将输入的“值”属性中的文本再次显示为默认文本。所以,如果我们创建一个新的输入元素,我们必须给它“值”属性。在 jQuery 中,我们应该使用 attr('value', newValue) 方法,而不是使用仅临时更改元素的可见值而不覆盖输入的 value 属性的方法 val()

4

1 回答 1

1

您可以尝试在创建元素时设置元素中的值。JSFiddle:http: //jsfiddle.net/turiyag/UG7uw/6/

$("form").append('<input type="text" value="456" />');
$(":button").click(function(){
    $("form").reset();
});

编辑:

看到您的代码,我认为您需要仔细研究如何将事件附加到元素。此示例说明如何运行在“click”事件上运行的 Javascript 代码。请注意页面的 Javascript 如何位于 JSFiddle 的 Javascript 框中。http://jsfiddle.net/turiyag/uUCGV/8/

此外,对于“空元素”,它们应该在标签末尾用“/>”关闭。例如:

<input type="text" value="foo" />

我会避免在分配了“id”的元素上使用克隆。clone() 还将复制 id 属性和初始值属性。创建新元素要干净得多。

此外,'$' 符号通常可以用来代替代码中的 'jQuery'。它可以减少打字。

示例中的代码会将初始值设置为“Input #1”、“Input #2”等。重置按钮会将表单重置为这些值。

event.preventDefault() 防止点击元素的默认表单提交动作。

这能回答问题吗?

于 2013-02-06T08:26:43.193 回答