我在我的应用程序的表单中使用了一些生成的input元素,并且我尽量保持它的简单性,这就是为什么我坚持对它们进行原生表单重置。
在节点创建时,“默认值”似乎被绑定到元素上。例如:
var inputOne = $('<input value="Original value">');
var inputTwo = $('<input>').val('Original value');
myForm.append([inputOne, inputTwo]);在这个示例(这是小提琴)中,只有输入模板才会正确地重置,但是我需要使用更像在输入2中进行的操作,因为我在输入模板上有不同的类型,这些模板比给出的示例中的模板复杂得多,因此与该值连接的简单字符串并不是一个可行的选项。
我考虑在输入模板中使用占位符,例如:
var myInputTemplate = '<input value="%val" data-foo="%foo" data-bar="%bar">';
var newInputNode = createNodeFromTemplate(myInputTemplate , {
val: "Original Value",
foo:"My Foo",
bar:"My Bar",
});但这是最后的手段,记住我只是尽量保持简单。
问题:
我在规范中读过一次,对于每种元素类型,默认值的定义是不同的,但没有给出进一步的解释。
如何为输入定义默认值?!
有一些解决办法来“重新定义”生成的输入中的默认值?!
发布于 2014-04-04 17:54:39
可以在任何时候设置默认值。
inputTwo.prop('defaultValue','some other value');但这并不会更新实际值属性,只有重置窗体时使用的默认值,设置值属性的首选方法仍然是val(),因为它设置了本机element.value属性。
inputTwo.val('value');而且在大多数情况下,您希望更改属性,而不是属性,因为这可能会导致其他许多问题。
还可以通过传递对象来创建元素。
var params = {
value : 'Original value',
id : 'myID',
'class' : 'myClass' // note the quotes, class is a reserved word in JS
}
$('<input />', params);发布于 2014-04-04 17:48:19
$('input').val(something)和$('input').attr('value', something)是有区别的。前者设置输入的当前值。后者更改输入的value属性,该属性包含控件的初始值。这使得form.reset能够正确地处理它--就像在这个演示中所看到的那样。
发布于 2014-04-04 17:49:07
jQuery的.val()不改变输入的value属性,只更改其内容。使用.attr()来更改value属性,提供您想要的功能。
$('<input>').attr('value', 'Original value');https://stackoverflow.com/questions/22869433
复制相似问题