我有这个表格,用于发布js文件如下的消息。我想阻止表单的默认操作并使用ajax ::::
提交
function iFrameOn()
{
richTextField.document.designMode = 'On';
}
function iBold()
{
richTextField.document.execCommand('bold',false,null);
}
function iItalic()
{
richTextField.document.execCommand('italic',false,null);
}
function iLink()
{
var linkURL = prompt('Enter the URL for this link:','http://');
richTextField.document.execCommand('CreateLink',false,linkURL);
}
function submit_form(){
var theForm = document.getElementById('myform');
theForm.elements["message"].value = window.frames['richTextField'].document.body.innerHTML;
$('#myform').submit();
$('#myform').submit(function(e) {
e.preventDefault();
var formData = new FormData(this);
console.log($('#myform').attr('action'));
$.ajax({
type:'POST',
url: $(this).attr('action'),
data:formData,
cache:false,
contentType: false,
processData: false,
success:function(data){
console.log(data);
},
error: function(data){
console.log("error");
console.log(data);
}
});
});
}
else
alert("Your message is empty");
}
**THE FORM IS**
<form method="POST" action="dmessage3.php" name="myform" id="myform" class="form1" >
<textarea name="message" id="myTextArea" cols="100" rows="14" style="display:none;"></textarea>
<iframe name="richTextField" id="richTextField" ></iframe>
<div id="toolbar" class="toolbar">
<input type="button" onClick="iBold()" value="B" class="tools" >
<input type="button" onClick="iItalic()" value="I" class="tools">
<input type="button" onClick="iLink()" value="Link" class="tools">
</div>
<input type="hidden" name="id1" value="1">
<input type="hidden" name="id2" value="2">
<input name="myBtn" type="button" value="Submit data" onClick="javascript:submit_form();">
</form>
但表单不是使用ajax发布的
答案 0 :(得分:1)
如果您想使用e.preventDefault()
,则需要在jQuery .on()
类型的调用中使用它。不在html的onClick
上。或者,如果您要在html中使用onclick,那么您需要在该函数的末尾添加return false;
。 Here是一个链接,如果您想了解更多相关信息。
这是一个适合您的版本(取决于您使用的jQuery版本)。我不确定else {}
函数末尾的submit_form()
子句是什么意思,但是我将其删除了(else-clause
需要if-clause
前面的function submit_form(){
var theForm = document.getElementById('myform');
theForm.elements["message"].value = window.frames['richTextField'].document.body.innerHTML;
var formData = new FormData(this);
console.log($('#myform').attr('action'));
$.ajax({
type:'POST',
url: $(this).attr('action'),
data:formData,
cache:false,
contentType: false,
processData: false,
success:function(data){
console.log(data);
},
error: function(data){
console.log("error");
console.log(data);
}
});
}
$('#myBtn').on('click', function(e) {
e.preventDefault();
submit_form();
});
才有效)。
<input name="myBtn" type="button" value="Submit data" />
使用此代码,只需从html-form按钮中删除onClick属性,如下所示:
/
并且还要确保所有需要结束标记的html标记都有一个结束标记,或者在标记末尾添加<property
as="xs:string"
name="oxf.fr.detail.process.workflow-send.*.*"
value='
require-uploads
then validate-all
then save(draft="true")
then send("oxf.fr.detail.send.success")'
/>
<property as="xs:anyURI" name="oxf.fr.detail.send.success.uri.*.*"
value="[Important WS URL]"/>
<!-- HTTP method to use to navigate to the success page -->
<property as="xs:string" name="oxf.fr.detail.send.success.method.*.*" value="POST" replace="all"/>
,如上面一行,以使其成为自动结束标记