我想利用一些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