2011-12-02 33 views
1

我有这样的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> 
+1

控制台显示什么?任何调试,错误或警告? –

+0

在控制台没有错..脚本正在工作它只是不提交表单:/如果我把更多的jQuery代码后提交()其工作.. – Svetoslav

+2

我们可以看到HTML吗? – mcgrailm

回答

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(); 
    }); 
}); 
+0

我修正了,但它还没有工作呢(从窗体中添加的HTML的一部分) val()的变化正在工作,但提交不是。 – Svetoslav

+1

如果你把下面的代码放在那里会发生什么:'alert(jQuery('#add_new_event')length);' –

+0

我直接把它在下一行的submit()之后,它会提醒我 - 1 – Svetoslav

0

1)为什么你说你r代码?

2)你使用的是什么版本的jQuery? ( '#old_thumb')点击(函数()

3)删除了jQuery {$ (本).VAL($(本).attr( '标题')); $( '#SF' ).val('2'); $('#add_new_event')。submit(); });

出文档准备FUNC

4)什么是$( '#add_new_event')的?什么样的元素?

+0

我在我的第一篇文章中添加这些字段(看看如何看起来如何我的表格的一部分.. 我不知道如何将它的工作,如果我把它移出文档就绪功能 – Svetoslav

1

这似乎与早期版本的jQuery(< 1.7)来工作。

"Uncaught TypeError: Property 'submit' of object #<HTMLFormElement> is not a function" 

请参阅release notes for 1.7.1

1084410701包括提交表单的问题。

此外,在使用jQuery的早期版本时,目标页面会发送标题X-Frame-Options SAMEORIGIN,导致此错误:由于X-Frame-Options禁止显示,因此拒绝显示文档。“(至少在使用iFrames的jsFiddle中)

0

我有这个问题,但是我在使用一个按钮元素(id为”submit“)在提交表单之前弹出一个jQuery对话框。在对话框按钮中的一个我试图提交表单 -

$("#myform").submit(); 

但是它总是给错误 -

Uncaught TypeError: Property 'submit' of object # is not a function

当我改变了按钮的ID为其他形式提交的罚款。

不是我知道的最好的修复程序,但我认为它可能有所帮助。

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'); 
       } 
      }); 
     }  
    }); 
}