【发布时间】:2016-05-02 10:39:53
【问题描述】:
我想检查出生年份的输入值。我发现如果我使用 jquery 函数 val() 来获取这个输入的值,那么这个输入的 php 帖子将为空。不使用 val() 也能正常工作。在这里您可以看到代码的重要部分。它不是那么重要的形式能力,但检查是否写有任何不当或任何错误输入会很有用。
感谢您的帮助。
<?php
if (!empty($_POST['rn']) && isset($_POST['rn'])){
// proceed
} else {
echo "You haven't filled all inputs";
}
?>
<script>
$("#kontrolaButton").click(function(){
var rok = parseInt($("#rok_nar").val(),10);
if (rok > 1900 && rok < 2016) {
$("#odeslatButton").trigger('click');
};
});
</script>
<form accept-charset="utf-8" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" class="send_form">
<input class="bold" id="rok_nar" type="text" name="rn" placeholder="Rok narození"/>
<input type="button" value="Odeslat" name="kontrola" id="kontrolaButton" />
<input type="submit" value="Odeslat" name="odeslat" id="odeslatButton" style="visibility: hidden;" />
</form>
更新: 我可能已经找到了问题所在。我没有在这里写它,因为我不认为它是一个问题。我的脚本如下所示:
$("#kontrolaButton").click(function(){
var rok = parseInt($("#rok_nar").val(),10);
alert(rok);
if (rok > 1900 && rok < 2016) {
$("#odeslatButton").trigger('click');
};
});
删除警报后,代码可以运行:/ 有趣...
【问题讨论】:
-
没有什么可以阻止用户在这里通过键盘提交并完全绕过您的点击处理程序
-
同时检查您的浏览器控制台是否有错误。您有几个语法问题将在您的控制台中很明显。这些错误会阻止您的代码执行任何操作。始终检查错误
-
@charlietfl 感谢您的建议,我还没有考虑过,我可能会尝试使用 on submit 并防止默认。抱歉语法错别字。我只是拿了几部分代码,所以我在这里重写了它,并犯了错误,但在实际代码中是可以的:/
-
它必须是别的东西,如果我评论 jquery 部分检查输入的值,它就像一个魅力。
-
您提供的代码有效,前提是您将脚本向下移动。所以我们需要一些其他的上下文。您确定您的所有 ID 值都是唯一的,尤其是 rok_nar?如果可能,请提供完整的代码。如果您提供的代码较少,请先检查该问题是否在该较小的代码中重现。
标签: php jquery forms validation post