2014-02-20 66 views
0

我期待提交按鈕來執行功能檢查器(),但它根本不工作,沒有警報,我做錯了什麼?提交不執行功能onsubmit

它應該是我按提交和檢查器繼續,如果電子郵件字段是正確的,它會得到一個true或false。如果它是真的,則會彈出一個div。

或者所有我想要做的就是提交其使用工作形式:

<form action="<?php echo $website.$relative_string;?>" name="subscribe" onsubmit="javascript:return checkEmail(this);" method="post"> 

它已經提交後,i美股調用函數popupClick();

感謝克里斯

<?php include("globals.php"); ?> 
<script> 
var sub = document.getElementById('sub'); 
var unsub = document.getElementById('unsub'); 
var btn = document.getElementById('submitButton2'); 

jQuery(function($) { 

$("a.topopup").click(function() { 
     loading(); // loading 
     setTimeout(function(){ // then show popup, deley in .5 second 
      loadPopup(); // function show popup 
     }, 500); // .5 second 
return false; 
}); 

/* event for close the popup */ 
$("div.close").hover(
       function() { 
        $('span.ecs_tooltip').show(); 
       }, 
       function() { 
        $('span.ecs_tooltip').hide(); 
       } 
      ); 

$("div.close").click(function() { 
    disablePopup(); // function close pop up 
}); 

$(this).keyup(function(event) { 
    if (event.which == 27) { // 27 is 'Ecs' in the keyboard 
     disablePopup(); // function close pop up 
    } 
}); 

$("div#backgroundPopup").click(function() { 
    disablePopup(); // function close pop up 
}); 

function popupClick() { 
    loading(); // loading 
    setTimeout(function(){ // then show popup, deley in .5 second 
     loadPopup(); // function show popup 
    }, 500); // .5 second 
} 

/************** start: functions. **************/ 
function loading() { 
    $("div.loader").show(); 
} 
function closeloading() { 
    $("div.loader").fadeOut('normal'); 
} 

var popupStatus = 0; // set value 

function loadPopup() { 
    if(popupStatus == 0) { // if value is 0, show popup 
     closeloading(); // fadeout loading 
     $("#toPopup").fadeIn(0500); // fadein popup div 
     $("#backgroundPopup").css("opacity", "0.7"); // css opacity, supports IE7, IE8 
     $("#backgroundPopup").fadeIn(0001); 
     popupStatus = 1; // and set value to 1 
    } 
} 

function disablePopup() { 
    if(popupStatus == 1) { // if value is 1, close popup 
     $("#toPopup").fadeOut("normal"); 
     $("#backgroundPopup").fadeOut("normal"); 
     popupStatus = 0; // and set value to 0 
    } 
} 
/************** end: functions. **************/ 

sub.onchange = function() //When sub changes 
{ 
if(sub.checked) //If it's checked 
{ 
    btn.innerHTML = "<span>Join</span>"; 
} 
else // If not.. 
{ 
    btn.innerHTML = "<span>Leave</span>"; 
} 
} 

unsub.onchange = function() //When unsub changes 
{ 
if(unsub.checked) //If it's checked 
{ 
    btn.innerHTML = "<span>Leave</span>"; 
} 
else // If not.. 
{ 
    btn.innerHTML = "<span>Join</span>"; 
} 
} 

function checker() 
{ 
window.alert("checker function"); 
if (checkEmail(this) = true) 
    { 
    window.alert("email correct"); 
    popupClick(); 
    return true; 
    } 
elseif 
{ 
    window.alert("email check wrong"); 
    return false; 
} 
} 

}); // jQuery End 
</script> 

<form action="<?php echo $website.$relative_string;?>" name="subscribe" onsubmit="return checker();" method="post"> 
    <div id="cell8" class="titlecell2"><h3>Email:</h3></div> 
    <div id="cell9" class="inputcell2"> 
     <input type="text" class="inputfield2" name="email" value="Your Email..." id="email2" maxlength="255" onfocus="this.value='';"> 
    </div> 
    <div id="cell10" class="textcell3"> 
     <input name="group" type="hidden" id="group[]" value="<?php echo $group; ?>"> 
     <input name="subscribe" id="sub" type="radio" value="true" checked> 
     </span>Subscribe</p> 
    </div> 
    <div id="cell11" class="buttoncell"> 
     <button type="submit" name="Submit2" value="Join" id="submitButton2" button" onClick="javascript:myFunction();"/> 
     <span>Join</span> 
     </button> 
    </div> 
    <div id="cell8" class="textcell4"> 
     <input type="radio" name="subscribe" id="unsub" value="false"> 
     </span>Un-Subscribe</p> 
    </div> 
</form> 

回答

0

你的代碼有很多問題。修復所有這些,然後重試:

  • onClick="javascript:myFunction();"錯誤。引用的字符串需要是Javascript代碼,所以javascript:不屬於那裏。您將此與<a href="javascript:...混淆。你想onclick="myFunction()"

  • 你有自閉按鈕標籤:<button ... />Join</button>其中/>立即關閉標籤,所以它不包圍下面的「加入」的文本。這意味着如果你點擊加入,它不會與按鈕相關聯,所以什麼都不會發生。您的編輯應該將其標記爲錯誤。

  • 您有</span>Subscribe</p>沒有跨度或段落先前打開。你需要使用一個可以突出顯示的編輯器。如果Visual Studio過度殺毒,我推薦微軟免費的Expression Web。 (我用了很多。)

  • 在您的檢查器()函數中,if條件包含=賦值運算符。您需要使用==比較運算符。

  • 在條件中不需要使用== true。而不是if (blah == true)只是使用if (blah)。有些情況下,您可能想要使用=== true,其中===表示「與......完全相同」,但這不適用於此。

  • 在您的檢查器()函數中,elseif應該只是else,因爲您未測試其他條件。

  • 在您的checker()函數中,checkEmail(this)將不起作用,因爲checker()沒有被調用爲對象的方法,因此this未定義。 onsubmit="return checker()"實際上定義了一個包含return checker()作爲函數體的匿名方法函數。這樣做的簡單的解決辦法是通過this作爲參數傳遞給檢驗器()函數,如下所示:

    function checker(theForm) { 
        if (checkEmail(theForm)) { 
         ... 
    
    <form onsubmit="return checker(this)" ...>