2012-02-12 7 views
0

if(ns1 == '' && ns2 == '')がユーザよりも空の場合、ユーザが[submit]ボタンをクリックすると、この警告が表示されます。Please fill in both nameserverユーザーがns1テキストボックスをクリックして入力を開始すると、警告がフェードアウトされます。どうすればそれを達成できますか?お願い助けて?ありがとうございました。jQueryがキー入力後に警告をフェードアウトする

<script type="text/javascript"> 
$(document).ready(function(){ 

     $('#submitButton').click(function(){ 

       var rege = /^([a-z0-9][a-z0-9-]*\.)+[a-z]{2,3}\.$/i; 


     var zone = $('#zone').val(); 
     var nama_subdomain = $('#nama_subdomain').val(); 
     var ns1 = $('#ns1').val(); 
     var ns2 = $('#ns2').val(); 

if(ns1 == '' && ns2 == ''){ 
$('#display').html('Please fill in both nameserver'); 
$("#ns1").focus(); 
return false; 
} 

if(ns1 == ''){ 
$('#display').html('Please fill in nameserver 1'); 
$("#ns1").focus(); 
    return false; 
} 
else if(ns2 == ''){ 
$('#display').html('Please fill in nameserver 2'); 
$("#ns2").focus(); 
    return false; 
} 

var parts = ns1.split('.'); 
var parts2 = ns2.split('.'); 

if (parts.length < 3 || !rege.test(ns1)) 
{ $('#display').html('Invalid nameserver 1 format'); 
$("#ns1").focus(); 
return false; 
} 
else if (parts2.length < 3 || !rege.test(ns2)) 
{ $('#display').html('Invalid nameserver 2 format'); 
$("#ns2").focus(); 
return false; 
} 


     $('#display').html('<img src="http://i.imgur.com/UbMeQ.gif"> saving...'); 
      $.post('pros.php', { 
       zone : zone, 
       nama_subdomain : nama_subdomain, 
       nameserver1 : ns1, 
       nameserver2 : ns2 
      }, 
      function(zone) { 

      $('#display').html(zone); 
      } 
     ); 


     }); 
    }); 


    </script> 


HTML:

<label for="data">Nameserver 1</label> 
      <input type="text" class="textInput" maxlength="255" size="30" value="" id="ns1" name="nameserver1"> 


      <label for="data">Nameserver 2</label> 
      <input type="text" class="textInput" maxlength="255" size="30" value="" id="ns2" name="nameserver2"> 

    <div id="display" style="color: green;"> 

<button id="submitButton" value="Save" type="button"><span>Save</span></button> 

答えて

1

を、メッセージをフェードアウトとなりますことを条件にkeypressイベントハンドラをアタッチユーザーが何かを入力するとバインドを解除します。

if(ns1 == '' && ns2 == ''){ 
    $('#display').html('Please fill in both nameserver'); 
    $("#ns1").focus() 
    .unbind('keypress') 
    .keypress(function(){ 
     if(this.value != ''){ 
     //fade out the message 
     $('#display').fadeOut(); 

     //unbind the keypress event we don't need it now 
     $(this).unbind('keypress'); 
     } 
    }); 
    return false; 
} 

他のテキストボックスも同じです。

+0

私はちょうど問題を発見する。私は他のテキストボックスと同じことをして、警告は一度しか表示されません。たとえば、空のテキストボックスでsubmitをクリックすると、「両方の名前を入力してください」という警告が表示されます。その後、私は 'ns1'で入力を開始し、警告は消えてしまいますが、もう一度送信をクリックすると(ns1テキストボックスにデータがありますが、ns2テキストボックスにデータはありません)警告は表示されません。私は 'ネームサーバ2を記入してください 'と思っていますが、一度だけ警告が表示されることはありません。 'ns2'空のテキストボックス検証のコードは次のとおりです: – sg552

+0

' else if(ns2 == ''){ $( '#display').html( 'Nameerver 2を入力してください'); $( "#のNS2")。(フォーカス) .unbind( 'キープレス') .keypress(関数(){ 場合(this.valueは!= ''){// が $メッセージをフェードアウト( '#display')フェードアウト();} }); //は、私たちが今 $(この).unbind( 'キープレス')を、それを必要としないキープレスイベントをバインド解除します。 falseを返します。 } '助けてください。 – sg552

+1

表示メッセージを表示する前に 'fadeIn'する必要があります。 html( 'nameserver'と入力してください)。fadeIn(); 'at( '#display')。すべての場所。 – ShankarSangoli

0

これはまさにあなたが説明した方法で動作するはずです:

$(document).ready(function(){ 

     $('#submitButton').click(function(){ 

       var rege = /^([a-z0-9][a-z0-9-]*\.)+[a-z]{2,3}\.$/i; 


     var zone = $('#zone').val(); 
     var nama_subdomain = $('#nama_subdomain').val(); 
     var ns1 = $('#ns1').val(); 
     var ns2 = $('#ns2').val(); 

if(ns1 == '' && ns2 == ''){ 
$('#display').show().html('Please fill in both nameserver'); 
$("#ns1").focus(); 
return false; 
} 

if(ns1 == ''){ 
$('#display').show().html('Please fill in nameserver 1'); 
$("#ns1").focus(); 
    return false; 
} 
else if(ns2 == ''){ 
$('#display').show().html('Please fill in nameserver 2'); 
$("#ns2").focus(); 
    return false; 
} 

var parts = ns1.split('.'); 
var parts2 = ns2.split('.'); 

$('#ns1, #ns2').keypress(function(){ 
    $('#display').fadeOut(); 
}); 
+0

このように変更したのは、 '$( '#ns1、#ns2')だけです。さて、私はそれを使用し、テキストボックスをクリックして入力を開始すると、警告が消えるだけではなく、まだそこにあります。 – sg552

+1

実際のウェブページをご覧ください。 – skimberk1

+0

こんにちは、私はあなたの助けに感謝しますが、問題は解決されています。再度ありがとう:) – sg552

関連する問題