我想利用一些jQuery的功能发送消息,如有模式对话框,但我也想包括用户不运行JavaScript。我可以同时做javascript和PHP表单吗?
如果我有一个jquery函数来处理对话框,但用户没有启用JavaScript什么是将它们重定向到我的PHP页面以撰写和发送消息的最佳方式?
我假设jQuery代码需要最高优先级,因为它是客户端,但然后我包裹我的PHP代码在标签?
有没有更优雅的解决方案?
我想利用一些jQuery的功能发送消息,如有模式对话框,但我也想包括用户不运行JavaScript。我可以同时做javascript和PHP表单吗?
如果我有一个jquery函数来处理对话框,但用户没有启用JavaScript什么是将它们重定向到我的PHP页面以撰写和发送消息的最佳方式?
我假设jQuery代码需要最高优先级,因为它是客户端,但然后我包裹我的PHP代码在标签?
有没有更优雅的解决方案?
我想我会在这里做的是利用按钮的onclick事件。你可以使用javascript或jquery返回false。如果浏览器关闭了JavaScript,表单将被提交。
<input type="button" onclick="return btnClick()" value="submit">
,然后在你的JavaScript像
function btnClick(){
//do ajaxy stuff
return cancelEvent()
}
function cancelEvent()
{
if (window.event) window.event.cancelBubble = true;
return false;
}
避免符合DOM0事件处理程序。也请让你'cancelEvent'功能工作。你需要调用'event.stopPropagation()',因为'return false'在DOM事件处理程序中不做任何事情(这是一个非标准的扩展) – Raynos 2012-01-16 19:25:06
它确实有效,我从我的一个工作解决方案中解脱出来。如果(window.event)window.event.cancelBubble = true,则返回false作品无处不在。在提示它不起作用之前尝试一下。 – 2012-01-16 19:28:45
在DOM3事件或DOM4中,它表示从事件监听器返回false会调用event.stopPropagation()。这是一个非标准的扩展,可以在任何时候删除。 – Raynos 2012-01-16 19:35:37
你想要做的就是一个普通的HTML表单什么:
<form action="submit.php" method="POST" id="sendMessage">
<input id="msg" name="message" type="text" />
<button type="submit">Submit</button>
</form>
然后使用jQuery覆盖提交功能:
$('#sendMessage').submit(function(e){
e.preventDefault(); // Stops the browser from submitting the form normally
// Do stuff...
});
S o,如果启用了JavaScript,jQuery将处理表单提交。它没有启用,浏览器会正常发布表单。
我认为你很困惑服务器端和客户端代码。你所做的是你有一个正常的HTML表单。你有JS重写提交功能,并做任何事情。如果JS关闭,表单将正常提交。 – 2012-01-16 19:09:14
你有用户,实际上禁用JavaScript? – jrummell 2012-01-16 19:10:07
'' – 2012-01-16 19:10:33