2

ねえ、私はなぜ私が次のコードでこのエラーを受け取っているのか疑問に思っています:

javascript:

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
 <script src="http://max.jotfor.ms/min/g=jotform?3.0.3359" type="text/javascript"></script>

 function checkInput() {
if ($("#input_3") === null) {
    $('#error1').css('display', 'block');
        $('#error1').css('visibility', 'visible');
}
 ....

CSS:

 .ErrorBlock1 {
    display: none;
    visibility: hidden;     
    background-color:#F00;
    color:#FFF;
    font-family:Arial, Helvetica, sans-serif;
    font-size:10px;
 }

HTML:

 <div id="cid_3" class="form-input-wide">
    <input name="q3_firstName3" type="text" class="form-textbox validate[required, Alphabetic]" id="input_3" size="25" style="width: 265px; height: 25px; background: transparent url(textfield.png) no-repeat center center; border: none;" onBlur="checkInput();" />
 <div class="ErrorBlock1" id="error1">First Name Req.</div>
 </div>

実行時にこのエラーが発生します:

Timestamp: 9/17/2012 9:10:15 AM
Error: TypeError: $("#error1") is null

なぜ私はこれを手に入れているのですか?

4

2 に答える 2

4

$('#input_3')null を返すことはありません。これは常に jQuery オブジェクトになります。

でその存在を確認し$('#input_3').length != 0ます。

于 2012-09-17T13:10:53.483 に答える
2

との両方を使用するdisplay場合visibility:

jsBin デモ

CSS:

.ErrorBlock1 {
    display: none; 
    visibility: hidden;
    background-color:#F00;
    color:#FFF;
    font-family:Arial, Helvetica, sans-serif;
    font-size:10px;
 }

jQuery:

function checkInput() {
  if ($("#input_3").val().length) {
      $('#error1').show().css({visibility:'visible'});
  }else{
      $('#error1').hide().css({visibility:'hidden'});
  }
}
于 2012-09-17T13:08:18.100 に答える