2017-10-06 34 views
1

私はjavascriptを初めて使用しています。私はこのコードを書いていないが、私はそれがうまくいく必要がある! 問題は、私の<p>タグに情報が表示されないということです。私がvar hint_resultになるまで、すべてがうまくいくようです。しかし、私は情報がなぜ表示されていないのか分かりません。 javascriptを愛用しようとしているが、苦労している:) パスワードヒントが表示されるはずです。jqueryのデータがHTMLページに表示されないのはなぜですか?

{"CONDITION":"true","MESSAGE":"top of the fruit","UUID":"1851-CCC6-A8A80A1B148637C6"} 

コード:事前に

<!--- Password Hint Window Start ---> 
<div class="password_hint"> 
    <p>Forgot your password?<br />No problem... we can fix that!</p> 

<div class="hint_form"> 
    <p>Enter your email address</p> 
    <form method="post"> 
     <input placeholder="Email_address" name="password_hint_email_address" type="text" tabindex="1" /> 
    <p class="button small passwordHint" style="width: 100%; margin: 1px 0 10px;" tabindex="2" >Submit</p> 
</form> 
</div> 

       <!--- Error Messages ---> 
       <p class="hint_result"></p> 
      </div> 


(function() {    
$("p.button.small.passwordHint").click(function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: globalURL+"/myfolder/userlogin.cfc?" + url_params, 
     data: { 
     method: "PasswordHint", 
     email: $("input[name='password_hint_email_address']").val() 
     }, 
     success: function(hint) { 
     var hint = jQuery.parseJSON(hint); 

      if (hint.CONDITION == true) { 
     var hint_result = $("p.hint_result").html("Your password hint is \"" + hint.MESSAGE + "\"").addClass(" messageSuccess"); 
     $(hint_result).show("slow"); 
    } else if (hint.CONDITION == false) { 
     var hint_result = $("p.hint_result").html(hint.MESSAGE).addClass(" messageError"); 
     $(hint_result).show("slow"); 
    } 
     }, 
     error: function(e) { 
     // handle error 
     //alert("Sorry there has been an error"); 
     } 
    }); 
}); 
}());   

おかげ これが送り返されているもののexmapleです。

+0

クリックしてF12開発ツールを使用して開始するajaxを確認してください。 – GGO

+1

$(hint_result)>これを$()に配置する必要はありません。 hint_resultはすでにJQueryオブジェクトです。あなたの質問から間違っている/予期しないことが分からないため、これがあなたの問題を解決するかどうかはわかりません。 – Reinard

+0

私は@ Reinardと同意します。私はそれが問題だと思います(いずれにせよ、そのうちの1つです)。私の回答を投稿していたときにあなたのコメントを見ていない。 :-) –

答えて

0

あなたのコード<script>このタグにあなたのコードを入れてみてください。

0

問題は、この行であるように見えます:

$(hint_result).show("slow"); 

ライン、それはjQueryオブジェクトにhint_result設定する前に(addClassはjQueryオブジェクトを返す):

var hint_result = $("p.hint_result").html("Your password hint is \"" + hint.MESSAGE + "\"").addClass(" messageSuccess"); 

だから、あなたができますhint_resultの周りのセレクタ構文を削除するだけです。あなたの固定回線は次のようになります。

hint_result.show("slow"); 

セレクタ構文$を(「...」)は、実際にはDOM要素(複数可)からjQueryオブジェクトを作成しますが、jQueryオブジェクトはすでにhint_resultです。