2013-03-25 46 views
0

在我的表單上使用jquery .submit()根本沒有任何效果。我甚至在我的網站上檢查了其他的javascript,以確保這個方法不會過時。控制檯也是空的,沒有錯誤。我的代碼:jquery表單完全沒有提交效果

<form method='POST' id='manualform'> 
       <input type="submit" value="submit" name="submit" id="hiddensubmit" style="display:none;"/> 
        <div>$MANUAL$</div> 
        <div class="space20"></div> 
        <input class="required email" id="emailinput" type="text" name="email" placeholder="[email protected]" style="font-family:arial;font-size:12px;color:white;width:250px;height:40px;background-color:black;opacity:0.5;padding-left:10px;" /> 
        <div class="space20"></div> 
        <div 
         style="height: 50px; width: 300px; background-image: url('img/wow_img_pdf_icon.png'); background-repeat: no-repeat; background-position: 10px top; padding-top: 5px;"> 
         <a id="action3" style="display: block; margin-left: 110px;" 
          >$STAHNOUT$</a> 

        </div> 
       </form> 

的jQuery:

$(document).ready(function() { 
      $('#action2').scrollToFixed({ 
       marginTop: 20, 
       fixed: function(){$('#hiddenfixed').css('display','');$('#action2').css('background-position','bottom');} , 
       preUnfixed :function(){$('#hiddenfixed').css('display','none');$('#action2').css('background-position','top');} 
      }); 

      $('#action3').click(function(){  
       $('#manualform').validate({     

       });    
       if(!($('#manualform').valid())) return false; 
       else { 
        $('#hiddensubmit').attr('value','submit'); 
        $('#manualform').submit(); 
       }     
      }); 
     }); 

即使當我嘗試用$('#manualform').submit(function(){alert(1);});重新定義提交的事件,沒有任何影響。我真的絕望於邊緣的神經,請幫助

+0

哪個驗證插件和scrollToFixed插件你使用? – 2013-03-25 10:14:06

+0

https://github.com/jzaefferer/jquery-validation和https://github.com/bigspotteddog/ScrollToFixed – ulkas 2013-03-25 10:15:11

+0

其中? – web2008 2013-03-25 10:18:33

回答

0

我對這種解決方法:代替 $('#manualform').submit();$('#hiddensubmit').click();

我的猜測是其他一些JavaScript可能重新聲明瞭submit()調用,但我找不到它。對我來說仍然是個謎。

+0

可能驗證插件做到了 – 2013-03-25 11:48:03

0
  1. 將驗證呼叫置於點擊功能之外。它只需要在頁面加載時調用一次。

http://jsfiddle.net/samliew/n4MRM/

$('#manualform').validate(); 

$('#action3').click(function() { 
    console.log('link clicked'); 
    if($('#manualform').valid()) { 
     $('#hiddensubmit').attr('value', 'submit'); 
     console.log('form submitted'); 
     $('#manualform').submit(); 
    } 
}); 
+0

thx答案,沒有奏效。仍然是同樣的問題 - 提交事件甚至沒有反應。即使我將它改爲'$('#manualform')。submit(function(){alert(1);});' – ulkas 2013-03-25 10:24:51

+0

如果可能,請在jsfiddle上重新創建問題,或發佈鏈接到頁面。 – 2013-03-25 10:26:33

1

我今天有這個問題,我發現這是因爲提交按鈕的名稱屬性是「提交」,與你的例子相同。

我沒有jQuery的較新版本的測試,但我看到這個,而對仍然使用jQuery 1.4.2遺留現場工作。