我在提交按钮上使用了锚标记,所以我认为这可能就是为什么我在尝试解决这个问题时遇到了很多麻烦。
我不确定它是否是" href"这一切搞得一团糟。我也想要一些服务器端验证的帮助,没有很多PHP经验,我只能使用JavaScript进行验证。
pval.sum()
以下是我的PHP代码。请协助验证并使用锚标记。我可能把表格弄乱了。
<form id="myform" method="post" name="contact_form" action="process.php">
<input id="cname" type="text" name="name" minlength="2" placeholder="Full Name" class="form-control" required>
<input id="cemail" type="email" name="email" placeholder="Email Address" class="form-control" required>
<textarea id="ccomment" rows="5" name="message" placeholder="Message..." class="form-control" required></textarea>
<div id="send-btn">
<a href="process.php" onClick="$(this).closest('form').submit();" class="btn btn-lg btn-general btn-white" role="button" name="submit">SEND</a>
<asp:Button runat="server" Text="submit"/>
</div>
</form>
答案 0 :(得分:0)
正如您在评论中所说:
<a href="javascript:void(0)" onClick="$(this).closest('form').submit();" class="btn btn-lg btn-general btn-white" role="button" name="submit">SEND</a>
小解释javascript: void(0)
或#
如果您在点击javascript: void(0)
元素时使用a
,浏览器将尝试运行一个名为void(0)
的函数,该函数应为undefined
并且除了跳过之外什么都不做你的onClick。
相反,如果您使用#
语法,浏览器将跳转到页面顶部,因为正在查找属性为id
的某个标记为空。
答案 1 :(得分:0)
理想情况下,使用现代Javascript,您可以避免在标记中添加任何脚本,并使用jquery附加click事件,并使用preventDefault阻止锚标记的默认操作。 (请参阅https://api.jquery.com/click/和https://api.jquery.com/event.preventDefault/)
但是,如果要使用onclick属性,则需要返回false。如果onclick事件返回false,则浏览器将取消默认操作。
<a href="#" onclick="$('#myform').submit(); return false;" class="btn btn-lg btn-general btn-white" role="button" name="submit">SEND</a>
单击锚链接时,将运行提交表单的javascript,但返回false将阻止链接被跟踪。返回false也会阻止浏览器在您的href中使用#时跳到顶部。
对于PHP中的服务器端验证,您需要使用条件语句来检查发布的变量是否与模式匹配。请参阅How to validate an email address in PHP。
答案 2 :(得分:0)
我按照锚标记的指示做了。现在的另一个问题是当我点击提交时没有任何反应,我的PHP代码是不正确的?
<form id="myform" method="post" name="contact_form" action="process.php">
<input id="cname" type="text" name="name" minlength="2" placeholder="Full Name" class="form-control" required>
<input id="cemail" type="email" name="email" placeholder="Email Address" class="form-control" required>
<textarea id="ccomment" rows="5" name="message" placeholder="Message..." class="form-control" required></textarea>
<div id="send-btn">
<a href="javascript:void(0)" onClick="$(this).closest('form').submit();" class="btn btn-lg btn-general btn-white" role="button" name="submit">SEND</a>
<asp:Button runat="server" Text="submit">
</div>
</form>