在输入上使用jquery val()后,PHP $ _POST为空

我想检查出生年份的输入值。 我已经想通了如果我使用jquery函数val()来获取此输入的值,那么此输入的phppost将为空。 它没有使用val()工作正常。 在这里,您可以看到代码的重要部分。 它不是forms的必要能力,但检查是否写入不合适或任何错误类型将是有用的。

谢谢你的帮助。

  $("#kontrolaButton").click(function(){ var rok = parseInt($("#rok_nar").val(),10); if (rok > 1900 && rok < 2016) { $("#odeslatButton").trigger('click'); }; });  <form accept-charset="utf-8" method="post" action="" class="send_form">     

更新:我可能已经发现了这个问题。 我没有在这里写,因为我不认为这是一个问题。 我的脚本看起来像:

 $("#kontrolaButton").click(function(){ var rok = parseInt($("#rok_nar").val(),10); alert(rok); if (rok > 1900 && rok < 2016) { $("#odeslatButton").trigger('click'); }; }); 

删除警报后,代码有效:/有趣……

您应该将脚本移动到HTML正文的末尾,以便在kontrolaButton元素位于DOM中时执行。

请注意,您发出鼠标按下/向上或按键/释放以关闭alert(rok); 可能会干扰提交表格。 例如,我可以重现这样的问题:我按下ESC键关闭警报,虽然表单提交了数据,但下一页没有呈现; 这只是一个空白页面。 这可能与浏览器有关,但在我的设置中,ESC键显然会中断页面​​的呈现。

如果您在页面上有其他响应这些键或鼠标事件的Javascript代码,则可能还有其他此类副作用。

看起来您尝试在加载之前访问dom中的输入。 我没有看到文件准备好了。 您需要将脚本放在准备好的文档中,以便延迟到完全解析dom,或者在页面底部移动逻辑,以便在您尝试查找它们时存在元素。