我有这个简单的jQuery代码:
<script type="text/javascript">
<!--
jQuery(function(){
jQuery('#old_thumb').click(function(){
$(this).val($(this).attr('title'));
$('#sf').val('2');
$('#add_new_event').submit();
});
});
//-->
</script>
由于某种原因,submit()
无法正常工作(点击old_thumb按钮后我的表单无法提交。有人可以帮助我吗?
这里是html的一部分(它很长并且包含了php所以我只会写开始和我更新的那些字段)..
<form action="http://dominicbesner.com/wp-admin/admin.php?page=ManageMedia/MM-admin.php&action=Edit2" method="post" name="add_new_event" id="add_new_event" enctype="multipart/form-data">
<input type="hidden" name="sf" id="sf" value="1" />
<input type="button" name="old_thumb" id="old_thumb" value="Edit" title="<?php echo $file;?>'" />
<input type="submit" name="submit" id="submit" value="Save Medias" class="button-primary" />
<input type="reset" name="reset" value="Reset Form" class="button" /></td>
</form>
答案 0 :(得分:2)
您似乎在混合使用jQuery实例引用 - 您正在使用jQuery
和$
。假设你设置noConflict
试试这个:
jQuery(function(){
jQuery('#old_thumb').click(function(){
jQuery(this).val(jQuery(this).attr('title'));
jQuery('#sf').val('2');
jQuery('#add_new_event').submit();
});
});
答案 1 :(得分:1)
似乎正在使用早期版本的jQuery(&lt; 1.7)。
"Uncaught TypeError: Property 'submit' of object #<HTMLFormElement> is not a function"
此外,在使用早期版本的jQuery时,您的目标页面会发送导致此错误的标头X-Frame-Options SAMEORIGIN
:拒绝显示文档,因为X-Frame-Options禁止显示。“(至少在使用iFrames的jsFiddle上。)
答案 2 :(得分:0)
1)你为什么要注意你的代码?
2)你使用的是什么版本的jQuery?
3)删除jQuery('#old_thumb')。click(function(){ $(本).VAL($(本).attr( '标题')); $( '#SF')VAL( '2')。 $( '#add_new_event')提交()。 });
out of document ready func
4)什么是$('#add_new_event')?什么样的元素?
答案 3 :(得分:0)
我有同样的问题但是我在提交表单之前使用了一个按钮元素(id为“submit”)来弹出一个jQuery对话框。点击其中一个对话框按钮后,我尝试提交表单 -
$("#myform").submit();
然而它总是给出错误 -
未捕获的TypeError:对象#的属性'submit'不是函数
当我将按钮的ID更改为其他内容时,表单提交正常。
不是我知道的最好的解决方案,但我认为它可能会有所帮助。
答案 4 :(得分:0)
可能已经回答了但是触发错误的问题是你在表单元素上调用“submit()”事件。
而不是这样做:
$("#myform").submit();
调用将处理您的提交的函数。这是我提交表单的代码。根据自己的喜好随意复制/修改/使用:
$('#submit').bind('click', function(e) {
e.preventDefault();
// Check for a Name
if($('#name').val() !== '') {
$('#name').removeClass('error').addClass('valid');
} else {
$('#name').removeClass('valid').addClass('error');
}
// Check for a Valid Email
if(isEmail($('#email').val())) {
$('#email').removeClass('error').addClass('valid');
} else {
$('#email').removeClass('valid').addClass('error');
}
// Check for a Valid Phone number
if(isPhoneNumber($('#phone').val())) {
$('#phone').removeClass('error').addClass('valid');
} else {
$('#phone').removeClass('valid').addClass('error');
}
// Check for a Message
if($('#message').val() !== ''){
$('#message').removeClass('error').addClass('valid');
} else {
$('#message').removeClass('valid').addClass('error');
}
// Check to see if Any input/textarea has the class 'error'
if($('input').hasClass('error') || $('textarea').hasClass('error')){
// Invalid form entry
} else {
// Submit the form
submitForm();
}
});
我有两个功能来检查有效的电子邮件和有效的电话号码
function isEmail(email) {
var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
function isPhoneNumber(number) {
var regex = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
return regex.test(number);
}
然后我有处理表单提交的功能
function submitForm() {
toggleModal(false);
// Format the data
var data = 'name=' + $('#name').val() + '&email=' + $('#email').val() + '&phone=' + $('#phone').val() + '&message=' + encodeURIComponent($('#message').val());
// start the ajax
$.ajax({
// this is the php file that processes the data and send mail
url: "process.php",
// GET method is used
type: "GET",
// pass the data
data: data,
// Do not cache the page
cache: false,
// Success response
success: function (html) {
$('#contact-form').fadeOut('slow', function(e) {
toggleModal(false);
if (html==1) {
// if process.php returned 1/true (show success message)
// show the success message
$('#success').fadeIn('slow');
} else {
// if process.php returned 0/false (show failed message)
//Show Fail Message
$('#fail').fadeIn('slow');
}
});
}
});
}