我有一些PHP邏輯呈現的以下表單。表單渲染正常;你可以看到文本輸入和提交按鈕等。爲什麼這些<form>不被FF和Chrome識別?
在IE中,表單按預期工作。第一種形式爲'index.php?subscribe = go',第二種形式爲'index.php?unsub = go',但在FF和Chrome中,單擊提交按鈕將重新加載頁面(不會進入表單操作)。我沒有檢查其他瀏覽器。
我在Firebug中發現<form>
標記甚至沒有存在在Firefox的頁面上。這很奇怪,檢查出來:
else
{
echo '<div class="subs_main">';
if (isset($_GET['subscribe']))
{
if ($_GET['subscribe'] != 'go')
{?>
Subscribe to <b>Bella Blog</b> for specials, sales, news and more!
<br />
<form action="index.php?subscribe=go" method="post" name="subscribe_form" onsubmit="return checkForm();">
Name: <input type="text" name="name" size="15" />
<br />
Email: <input type="email" name="email" size="20" />
<br />
<input type="submit" value="subscribe!" name="submit" />
</form>
<p class="unsub">You can <a href="index.php?unsub">unsubscribe</a> at any time</p>
<?php
}
else
{
// subscribe user
}
}
elseif (isset($_GET['unsub']))
{
if ($_GET['unsub'] != 'go')
{?>
Sorry to see you go! You can <a href="index.php?subscribe">re-subscribe</a> at any time!
<br />
<form onsubmit="return checkForm2()" name="unsub_form" method="post" action="index.php?unsub=go">
Email: <input type="email" name="email" size="20" />
<br />
<input type="submit" value="unsubscribe" name="submit" />
</form>
<?php
}
else
{
// process unsubscription HERE
}
}
echo '</div>';
}
這是JS的表單驗證(可忽略我想是因爲它在IE和評論這個劇本的時候了,我得到了相同的結果):
<script type="text/javascript" language="javascript">
function checkForm()
{
var regex = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
var form = document.forms.subscribe_form;
var name = form.name.value;
var email = form.email.value;
if (name == '' || email == '')
{
alert('You must enter both your name and email address!');
return false;
}
else if (!email.match(regex))
{
alert('You must enter a valid email!');
return false;
}
return true;
}
function checkForm2()
{
var form = document.forms.unsub_form;
var email = form.email.value;
if (email == '')
{
alert('You must enter an email address!');
return false;
}
return true;
}
</script>
我們可以看到上面的網頁的網址。 – 2012-08-27 00:22:35
它在我的本地機器上,一個WAMP服務器。再次,它在IE中運行良好,但有一些錯誤或者東西,使FF和Chrome不呈現窗體標籤。 – khaverim
無法調試我無法看到,上傳或? – 2012-08-27 00:29:06