-1

user_name と電子メールのチェックが返されるまで送信ボタンを無効にしようとしていますが、エラーが発生した場合は続行して送信ボタンを表示したくありません。つまり、ユーザー名/電子メールは既に存在します!

フォーム内の id="livesearchEmail" からエラー値を取得しようとしています。クリア、つまりエラーがない場合は、ボタンをアクティブにしたいです! 私が持っているものは十分にまっすぐに見えますが、うまくいきません! 私は何が欠けていますか?

#livesearchEmail から返される値を取得しようと一日中試みていましたが、役に立ちませんでした。

正しい方向への助けやポイントは、感謝して受け入れられます!

<div id="livesearchEmail" class="livesearchEmail"></div>

<script type="text/javascript">  
    $(document).ready(function() {    
        $('input[id="registerButton"]').attr('disabled','disabled');
        $('input[type="text"]').keyup(function() {
        if ($('#user_name').val() != "" && $('#email').val() != "") {
            if ($("#livesearchEmail") == ''){
                $('input[id="registerButton"]').removeAttr('disabled');
            }
        }
        });        
    });​​
</script>  
4

3 に答える 3

0

jQuery ID セレクター (「#id」)

ID は一意であるため、タグやすべてのものを使用して特別なセレクターを構築する必要はありません。たとえば、単純に this:$('input[id="registerButton"]')を this: に変換できます$("#registerButton")

チェックするとボタンがアクティブにならないため、エラーが返されないかどうかをチェックする理由がよくわかりません。ただし、要件の下では、この jQuery コードが機能します。

$(document).ready(function() {    
    $("#registerButton").attr('disabled','disabled');
    $('input[type="text"]').keyup(function() {
    if ($('#user_name').val() && $('#email').val() && (!$("#livesearchEmail").length || !$("#livesearchEmail").text())) {
        $("#registerButton").removeAttr('disabled');
    }
    });        
});
于 2012-05-03T15:14:19.143 に答える
0

使ってみて $("#livesearchEmail").text();


編集 - コードを追加

$(document).ready(function() {  
     $('input[id="registerButton"]').attr('disabled','disabled');
     $('input[type="text"]').keyup(function() {
        if($('#user_name').val() != "" && $('#email').val() != ""){
            if ($("#livesearchEmail").text() == ""){
                $('input[id="registerButton"]').removeAttr('disabled');
            }
        }
     });  
 });  
于 2012-05-03T14:57:22.100 に答える
0

取得しようとしているデータがフォーム要素ではなく DOM 要素 (<div> など) にあると仮定すると、次のようになります。
if ($("#livesearchEmail")[0].innerHTML === '')

またはそれを保持したい場合 jQuery 私はあなたが text() 関数を使うことができると思います:
if ($("#livesearchEmail").text() === '')

また、誤った評価を防ぐためにトリプル イコールを使用していることにも注意してください。

于 2012-05-03T15:10:51.747 に答える