我有这个代码,将属性“onclick”设置为所有提交按钮以调用某个功能。 用户脚本将在社交网站(Facebook)上运行并加密用户发送的消息。 所以我希望在click事件中暂停默认操作,访问它以某种方式发送的消息(我猜想使用formData),对文本消息运行encrypt函数并继续提交动作并加密发送消息。 所以这是脚本:
$('textarea', window.content.document)
.closest('form')
.find('input[type=submit]')
.attr("onclick","dont();");
function dont(){
//access formData sent with the submit action and encrypt the message
};
答案 0 :(得分:1)
看起来你可能错过了回归。在没有返回的onclick属性之前,函数不会停止动作的发生。
$('textarea', window.content.document)
.closest('form')
.find('input[type=submit]')
.attr("onclick","return dont();");
function dont(){
//access formData sent with the submit action and encrypt the message
//be sure to return true or false depending on if you want the action submitted
};
答案 1 :(得分:0)
不是在提交按钮上放置onclick功能,而是直接定义一个调用函数来收集和加密表单上的数据,如下所示
<form name="sampleForm" method="post" onsubmit="return dont()" enctype="multipart/form-data" action="someurl">
function dont()
{
//code to access the form data and encrypt
if(error)
return false; //Stops the submission of the form
else
return true;
}
或其他
只需一个按钮(输入类型=按钮)而不是提交(输入类型=提交)并定义onclick功能,如下所示
<input type="button" value="submit" onclick="dont()" />
function dont()
{
//code to access the form data and encrypt
if(error)
alert("Failed") //Stops the submission of the form
else
document.forms[0].submit();
}
希望这有帮助。