【发布时间】:2018-06-14 14:49:09
【问题描述】:
关于使用 JQuery 动态设置输入值,我遇到了一个非常奇怪的问题。
目标输入的初始状态如下:
<input type="text" id="birthdate" name="birthdate" value="" data-alt-value="0000-00-00" autocomplete="off" data-local-value="0000-00-00">
注意:输入字段是通过 Joomla 框架生成的(可能有关系,我不知道)。
如果我以常规方式设置值:
$('[name="birthdate"]').val("1986-01-21");
我得到这个结果:
<input type="text" id="birthdate" name="birthdate" value="" data-alt-value="1986-01-21" autocomplete="off" data-local-value="1986-01-21">
未设置 value 属性。所以我尝试了这种方式:
$('[name="birthdate"]').attr('value', "1986-01-21");
给出了预期的结果:
<input type="text" id="birthdate" name="birthdate" value="1986-01-21" data-alt-value="1986-01-21" autocomplete="off" data-local-value="1986-01-21">
但无论出于何种原因,表单提交后该值为空。 更奇怪的是,如果我将焦点放在出生日期字段(通过单击它)然后提交表单,则值会正确传递。
我要指出,这个问题只发生在处理日期或日期时间值的输入字段中。
有人可以帮助我吗?
【问题讨论】:
-
$('[name="birthdate"]').val("1986-01-21");不会更改value属性,它会更改input值(输入字段中的文本)。$('[name="birthdate"]').attr('value', "1986-01-21");则相反(设置value属性,但不设置input值)。 -
@APAD1 嗯,
input的情况是一样的吗? -
@APAD1 我明白你在说什么,但
input标签的value属性应该是inputvalue。也许给我一个链接?