2014-02-20 3 views
0

Я ожидаю кнопку отправки, чтобы выполнить функцию checker(), но она вообще не работает, нет предупреждения, я делаю что-то неправильно?Отправить не выполняет функцию onsubmit

Должно быть, я нажимаю кнопку «Отправить», и контрольная панель продолжается, после чего возвращается истина или ложь, если поле электронной почты верное. если это правда, появляется всплывающее окно.

в качестве альтернативы все, что я хочу сделать, это отправить форму, которая работала с помощью:

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

После того, как было представлено, я стене, чтобы вызвать функцию 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> где /> закрывающий тег сразу, так что он не заключите «Join» текст, который следует. Это означает, что если вы нажмете на Join, это не связано с кнопкой, поэтому ничего не произойдет. Ваш редактор должен был помечать это как ошибку.

  • У вас есть </span>Subscribe</p>, где ранее не было проспекта или абзаца. Вам нужно использовать редактор, который может выделить это. Если Visual Studio переполнена, я рекомендую Microsoft Expression Web бесплатно. (Я использую его много.)

  • В вашей функции checker() состояние if содержит оператор назначения =. Вам необходимо использовать оператор сравнения ==.

  • Вам не нужно использовать == true в состоянии. Вместо if (blah == true) просто используйте if (blah). Существуют расширенные случаи, когда вы можете использовать === true, где === означает, что «идентичен», но здесь это не применимо.

  • В вашей функции checker() elseif должен быть просто else, так как вы не тестируете другое условие.

  • В вашей функции checker() checkEmail(this) не будет работать, потому что checker() не используется как метод объекта, поэтому this не определен. onsubmit="return checker()" фактически определяет функцию анонимного метода, содержащую return checker() как тело функции. Самым простым способом исправить это передать this в качестве аргумента функции проверки(), например:

    function checker(theForm) { 
        if (checkEmail(theForm)) { 
         ... 
    
    <form onsubmit="return checker(this)" ...> 
    
Смежные вопросы