2013-07-23 9 views
0

ID가 formA이고 comments 인 두 개의 양식이 있으며 AJAX를 통해 제출하고 싶습니다. 그러나 ifelse은 양식을 확인하지 않습니다. 나는 항상 경고 hello3을 얻는다.양식이 if 문으로 확인되지 않았습니다.

JS :

function submitformbyajax() { 
    var currentForm = $(this); 
    if (currentForm.attr("id") == 'formA') { 
     $.ajax({ 
      type: 'post', 
      url: 'commentformhandler.php', 
      data: $("form").serialize(), 
      success: function() { 
       $("#refresh").load("commentform.php #refresh"); 
      } 
     }); 
    } else if (currentForm.attr("id") == 'comments') {} 
    alert("hello3"); 
    return false; 
} 

함수가 여기

<div> 
    <form name="formA" id="formA" action="" method="" onsubmit="return  submitformbyajax();"> 
     <textarea name="comment" id="commentform" style="width:90%; height:45px;"></textarea> 
     <input type="submit" name="submit" value="submit" id="submitbtn" /> 
     <input type="hidden" name="onid" value="2" id="submitbtn"/> 
    </form> 
</div> 

전체 데모 페이지가 호출됩니다 ....

<?php 

?> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> </script> 
<script> 
    function submitformbyajax(){ 
var currentForm = $(this); 
    if (currentForm.attr("id") == 'formA') { 
     $.ajax({type: 'post', 
       url: 'commentformhandler.php', 
       data: $("form").serialize(), 
       success: function(){ 
       $("#refresh").load("commentform.php #refresh"); 
       alert ("hello1"); 
       } 
     }); 
} 
else if (currentForm.attr("id") == 'comments') { 
     alert("hello2"); 
    } 
    alert ("hello3"); 
    return false; 
} 
</script> 
    <title> 
     comment forms.. 
    </title> 
</head> 
<body> 
<div> 
    <form name="formA" id="formA" action="" method="" onsubmit="return submitformbyajax();"> 
     <textarea name="comment" id="commentform" style="width:90%; height:45px;"></textarea> 
     <input type="submit" name="submit" value="submit" id="submitbtn" /> 
     <input type="hidden" name="onid" value="2" id="submitbtn"/> 
    </form> 
</div> 
<div id="refresh"> 
    <?php 
     include_once('databaseconnection.php'); 
     $selectdata=mysql_query("select * from `fetwork_view` "); 
     while($selectedinarray=mysql_fetch_array($selectdata)){ ?> 
      <table> 
       <tr> 
        <td> 
         <?=$selectedinarray['view']?> 
        </td> 
       </tr> 
       <tr> 
        <td> 
     <form name="comment" id="comments" action="" method=""> 
     <textarea name="comment" id="commentform" style="width:70%; height:25px;"></textarea> 
     <input type="submit" name="submit" value="submit" id="submitbtn" /> 
     <input type="hidden" name="onid" value="2" id="submitbtn"/> 
     </form> 
        </td> 
       </tr> 
      </table> 

    <?php } ?> 
</div> 
</body> 
</html> 
+0

당신은 같은과 형태가 없어야합니다

하는 submitformbyajax 기능 양식은 인자로 this을 추가 "통과"를 신분증. 대신 클래스를 사용합니다. – user1477388

+0

양식은 두 개의 별개의 ID를 formA 및 의견을 가지고 .... – user2561540

답변

0

alert(...) 문은 if에 의해 테스트 된 조건에 관계없이 실행됩니다. 바로 그 후 if 실행됩니다.

ajax은 코드의 "흐름"을 리디렉션하지 않습니다. 브라우저가 AJAX 요청을 "실행"하고 계속 진행합니다. 그런 다음 서버의 응답을 받으면 AJAX 콜백 함수가 실행됩니다.

업데이트 :

<form name="formA" id="formA" onsubmit="submitformbyajax(this);"> 

JS :

function submitformbyajax(your_form) { 
    var currentForm = $(your_form); 
+0

양식이 처리되지 않습니다. 경고는 문제가 아닙니다. 문제는 양식이 내부에 가지 않는 처리가 아니라는 것입니다. – user2561540

+0

1. submitformbyajax가 어떻게 불려지나요? 2.'currentForm.attr ("id")'에서 무엇을 볼 수 있습니까? 질문에 # 1에 대한 답변을 추가하십시오. – mishik

+0

는 완전한 코드를 추가했습니다 .. 제발 뭔가를 제안하십시오 .. – user2561540

0

내가 사용한다고 생각

$("form#formA").submit(function(){ 
    alert(1); 
}); 
+0

경고 그냥 확인하고 싶습니다. 나는 단지 내 양식을 확인하고 싶습니다. 그리고 다른 사람에 의해 그리고 나서 accordengly 처리 ... – user2561540