我有一个表单,我有两个按钮。一个按钮应该将用户带到一个PHP脚本,另一个按钮将用户两个不同的PHP脚本。但由于某些原因,按钮不做任何事情。这是代码。
<script language="Javascript">
function OnButton1()
{
document.contactform.action = "../scripts/email-info.php"
// document.Form1.target = "_blank"; // Open in a new window
document.contactform.submit(); // Submit the page
return true;
}
function OnButton2()
{
document.contactform.action = "../scripts/email-info2.php"
//document.contactform.target = "_blank"; // Open in a new window
document.contactform.submit(); // Submit the page
return true;
}
</script
然后是实际的表单代码:
<form id="contact-form" name="contactform" method="post">
<fieldset>
<div id="holder">
<div id="formLeft">
<div class="txtlabel">Name* </div><div class="input-bg"><input type="text"
name="name" id="name" required></div>
</div>
</div>
<div id="msgbox">
<div class="txtlabel">Tell Us About Your Business Needs</div>
<div class="message-bg">
<textarea name="message" id="message" rows="9" cols="56" required></textarea><input
name="formpage" type="hidden" value="<?=$pagename;?>" />
</div></div><div style="clear:both"></div><br /><br />
<input src="/submitbtn.jpg"
name="submit" value="View Now" class="submit-button" onclick="OnButton1();"/>
<input src="/submitbtn.jpg"
name="submit" value="Download Now" class="submit-button2" onclick="OnButton2();" />
</fieldset>
</form>
我已删除了部分提交字段,以便更容易查看。但是当我点击任一按钮时我什么也得不到......有什么想法?
答案 0 :(得分:2)
问题出在输入中:
<input src="/submitbtn.jpg"
name="submit" value="View Now" class="submit-button" onclick="OnButton1();"/>
当您有表格时:
document.contactform.submit
Javascript返回名为submit
的输入,而不是submit
函数。
您可以更改输入的名称:
<input src="/submitbtn.jpg"
name="yourName" value="View Now" class="submit-button" onclick="OnButton1();"/>
此外,您的输入不是按钮,请检查this。
此question提及HTML5 formaction
属性:
<form action=#">
<buton formaction="script-1.php">submit one</button>
<buton formaction="script-2.php">submit two</button>
</form>
答案 1 :(得分:2)
我很惊讶没有人提到过编队。它是提交/图像状态下输入和按钮标记的合法属性(在HTML5中),可用于将表单数据发送到不同的操作页面。 http://mdn.beonex.com/en/HTML/Element/input.html(它在按钮中也有效)。
<form action=#">
<buton formaction="script-1.php">submit one</button>
<buton formaction="script-2.php">submit two</button>
</form>
如果您需要支持IE9-,您只需使用webshims填充此内容即可。
<script src="webshims/polyfiller.js"></script>
<script>
webshims.polyfill('forms');
</script>
<!-- now it also works with IE8/9 and other legacy browsers -->
<form action=#">
<buton formaction="script-1.php">submit one</button>
<buton formaction="script-2.php">submit two</button>
</form>
答案 2 :(得分:0)
您对表单的引用是
document.forms.contactform
而不是
document.contactform
因此,例如,提交按钮应为:
document.forms.contactform.submit();
// ^^^^^
同样的修正应适用于其他参考文献。