2014-03-25 3 views
1

나는 거기에 빌드 할 사용자에게 옵션을 제공하는 웹 사이트를 구축하고 있습니다. custom URL. 이 사용자 지정 URL은 mysql 인 데이터베이스에서 유효성을 검사합니다. 사용자 정의 url이 이미 존재하는 경우 customurl.if 사용자가 사용자 정의 URL을 원한다면 해당 사용자는 해당 라디오 버튼을 선택하지 않습니다.자바 스크립트의 입력 열기에 따라 텍스트 상자의 유효성을 검사하는 방법

제 코드가 customurl의 옵션을 선택하지 않은 텍스트 상자의 유효성을 검사하고 있기 때문에 양식이 제출되지 않습니다.

<html> 
    <body> 
    <form action="insertdata.php" id="contact-form1" class="mar_l10" method="post"> 
    <p><input type="radio" name="cust1" value="2" onclick="hide();" class="display_inline">Dont want</p> 
    <p><input type="radio" name="cust2" value="3" onclick="show();" class="display_inline">Custom URL need</p> 
    <p id="showlabel" style="display: none;" onblur="test(this);">Custom URL</p> 
    <input type="text" name="url" id="url" style="display: none;" onblur="test(this);" class="display_inline" maxlength="20"/> 
<div id="user_status"></div> 
    <input type="submit" id="continue_details" value="Continue" title="Continue" class="submit_btn" > 
    </form> 



    <script type="text/javascript"> 
      function show() 
      { 
      document.getElementById('url').style.display = 'block'; 
      document.getElementById('hostname').style.display = 'block'; 
      document.getElementById('checkurl').style.display = 'block'; 
      document.getElementById('showlabel').style.display = 'block'; 
      } 
      function hide() 
      { 
      document.getElementById('url').style.display = 'none'; 
       document.getElementById('hostname').style.display = 'none'; 
      document.getElementById('checkurl').style.display = 'none'; 
      document.getElementById('showlabel').style.display = 'none'; 
      } 



    var flag = true; 
    $('#contact-form1').submit(function(e){ 
    e.preventDefault(); 

    if($('#user_status').val() == " "){ 
    document.getElementById('contact-form1').submit(); 
     //return true; 
    } 
    else 
    { 
    test(); 
    $('.user_status').show(); 

    } 




    }) 



    function test() 
    { 
     var username = document.getElementById('url').value; 
     var url = "check_url.php?username="+username; 

     if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     {// code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

     xmlhttp.onreadystatechange=function() 
     { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 

       var result = xmlhttp.responseText; 
       if(xmlhttp.responseText =='Custom URL is available') 
       { 
        document.getElementById('user_status').innerHTML =result ; 

        document.getElementById('contact-form1').submit(); 

       } 
       else 
       { 
        document.getElementById('user_status').innerHTML =result ; 
       } 

      } 
     } 


     xmlhttp.open("GET",url,true); 

     xmlhttp.send(); 

    } 
    </script> 



    </body> 
    </html> 

사용자 정의 URL 옵션에 대한 데이터베이스 검증도 올바른 작동하고 형태도 제출하십시오

여기 내 코드입니다. 하지만 사용자 정의 url 옵션을 선택하지 않으면 양식이 url 텍스트 상자의 유효성을 검사합니다.

제발 내가 도와주세요.

감사합니다.

+0

pls는 당신이 코드를 see..php하려는 response.what 검증 주셔서 감사합니다 – Dev

+0

당신의 검증을 보여? – user3184286

+0

당신은'내 코드가 그 텍스트 상자를 검증한다고해도 customurl 옵션을 선택하지 않습니다. '라고 말하면서 위 코드에 대한 유효성 확인 – Dev

답변

0

테스트 할 때 cust2가 선택되어 있는지 확인해야합니다.

if($('input[name=cust2]').is(':checked')) 
{ 
    test(); 
} 

라디오 버튼에 상호 배타적 인 이름이 있어야합니다. 이것은 귀하의 질의에 보조적인 내용입니다.

+0

을보고 싶습니다. 이것 좀 도와주세요 – user3184286

+0

위 코드 몇 줄을 잃어 버렸다고 생각합니다. 양식을 제출하는 것이 아무것도 보이지 않습니다. 'e.preventDefault();'는 양식 제출을 중단해야합니다. 다른 오류가 발생할 수있는 몇 가지 의심스러운 빈 줄이 있습니다 (StackOverflow에서 오른쪽 또는 일부 위에 공백을 두지 않은 경우). 이것에 대한 –

0

당신과 같이, 시험 함수를 호출하기 전에 라디오 버튼을 선택해야합니다 :

else if ($('form input[type=radio]:checked').val() == 3) 
+0

내가 변경 한 모든 case.code에 대한 sumbitting var flag = true; $ ('# contact-form1') { if ($ ('# user_status') .Val() == "") { document.getElementById ('contact-form1') .submit(); // true를 돌려, 그렇지 } 을 경우 ($ ('양식 입력 [TYPE = 라디오] 체크'). 발() == 3) { 테스트()를; $ (' . .user_status ') 쇼(); \t \t })가이 – user3184286

+0

에 저를 도와주세요 sumbitting되어 작성하지 않는 경우에 어떤 } 을 것으로 예상된다? 언제 제출해야합니까? – srrvnn

+0

나는 옵션 1을 클릭하면 직접 제출해야하고 옵션 2를 클릭하면 customurl을 사용할 수있을 때만 제출해야합니다. – user3184286

관련 문제