Jquery 表单提交后的空值

Jquery 表单提交后的空值,jquery,forms,Jquery,Forms,关于JQuery输入值的动态设置,我面临一个非常奇怪的问题 目标输入的初始状态如下所示: <input type="text" id="birthdate" name="birthdate" value="" data-alt-value="0000-00-00" autocomplete="off" data-local-value="0000-00-00"> 我得到这个结果: <input type="text" id="birthdate" name="birthdat

关于JQuery输入值的动态设置,我面临一个非常奇怪的问题

目标输入的初始状态如下所示:

<input type="text" id="birthdate" name="birthdate" value="" data-alt-value="0000-00-00" autocomplete="off" data-local-value="0000-00-00">
我得到这个结果:

<input type="text" id="birthdate" name="birthdate" value="" data-alt-value="1986-01-21" autocomplete="off" data-local-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">

但无论出于何种原因,表单提交后该值为空。 更奇怪的是,如果我将焦点放在birthdate字段上(通过单击它),然后提交表单,那么值就正确传递了

我要指出的是,这个问题只发生在处理日期或日期时间值的输入字段中


有人能帮我吗?

提交表单时,发送的参数来自输入字段的
属性。
value
属性用作
value
属性的初始值,但更改属性不会更改属性(属性单独保存,以便表单的
reset()
方法可以将其还原)

要更改提交的内容,只需更改属性,而不是属性。当您在控制台中查看DOM时,不会看到此更改


有关属性和属性之间关系的详细信息,请参见。某些属性和属性的工作方式与其他属性略有不同。

提交表单时,发送的参数来自输入字段的
属性。
value
属性用作
value
属性的初始值,但更改属性不会更改属性(属性单独保存,以便表单的
reset()
方法可以将其还原)

要更改提交的内容,只需更改属性,而不是属性。当您在控制台中查看DOM时,不会看到此更改


有关属性和属性之间关系的详细信息,请参见。某些属性和属性的工作方式与其他属性略有不同。

$('[name=“birthdate”]').val(“1986-01-21”)不会更改
属性,它会更改
输入
值(输入字段中的文本)<代码>$('[name=“birthdate”]')。attr('value',“1986-01-21”)的作用正好相反(设置
属性,但不设置
输入
值)。@APAD1嗯,在
输入
是的情况下,它们是相同的?@APAD1我明白你的意思,但是
输入
标记的
属性应该是
输入
值。也许可以给我一个链接?
$('[name=“birthdate”]')。val(“1986-01-21”)
不会更改
属性,它会更改
输入
值(输入字段中的文本)<代码>$('[name=“birthdate”]')。attr('value',“1986-01-21”)的作用正好相反(设置
属性,但不设置
输入
值)。@APAD1嗯,在
输入
是的情况下,它们是相同的?@APAD1我明白你的意思,但是
输入
标记的
属性应该是
输入
值。也许可以给我一个链接?谢谢你的信息。但是,我尝试使用JQuery prop()方法,但仍然不起作用。此外,为什么不管使用何种方法,其他输入字段都能正确提交?如何解决这个问题?
.prop()
有时设置属性而不是属性,因为程序员经常混淆它们。看见在这种情况下可能是这样的,因为您应该使用
.val()
来设置属性。我无法解释为什么这会对不同的输入字段产生不同的效果,除非Joomla以某种方式进行了干扰。我对乔姆拉一无所知。谢谢你的消息。但是,我尝试使用JQuery prop()方法,但仍然不起作用。此外,为什么不管使用何种方法,其他输入字段都能正确提交?如何解决这个问题?
.prop()
有时设置属性而不是属性,因为程序员经常混淆它们。看见在这种情况下可能是这样的,因为您应该使用
.val()
来设置属性。我无法解释为什么这会对不同的输入字段产生不同的效果,除非Joomla以某种方式进行了干扰。我对乔姆拉一无所知。
$('[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">