3

ユーザーがテキスト領域にテキストを入力するときにチェックボックスを無効にする必要があります。そうしないと、アクティブになります。最も関連性の高いイベントを試しましたが、機能しません。onkeydown は最初に押すと無効になり、ユーザーが何かを入力して削除すると onchange が機能します。テキスト領域を離れた後、それを無効にするものはないようです。

<script type="text/javascript">

    function enable_cb(textarea) { 
       if ($(textarea).val() != "" ) { 
        $("input.cmb").removeAttr("disabled"); 
    } 
    else { 
        $("input.cmb").attr("disabled", true); 
    } 
} 

</script>
Comments:<br />
<p><textarea name="issue" id="issue_ta" cols="50" rows="10" class="help" tabindex="2" title="Enter Detailed Description" onchange="enable_cb(this);"></textarea></p>
<p><input name="no_issue" type="checkbox" id="no_issue" class="cmb" />No Issues to Report</p>
<p class="label">Enter Current Vehicle Mileage:</p>
<p><input type="tel" name="record_mileage" class="required" tabindex="3" title="&nbsp;Enter Current Mileage&nbsp;" size="25"/></p>
<p><input type="submit" name="Submit" value="Send"/></p>
</form>
4

5 に答える 5

3

onclick ハンドラーを削除して、次のようにします。

$(function() {
    $("#issue_ta").on('change keyup', function() {
        $("input.cmb").prop("disabled", this.value.length); 
    });
});

フィドル

于 2012-09-05T15:52:39.163 に答える
1

テキストエリアにぼかしイベントを使用しないのはなぜですか..これにより、テキストエリアがフォーカスを失ったときにコードが確実に実行されます..

このコードを試してください..

// Your Markup..
Comments:<br />
<p><textarea name="issue" id="issue_ta" cols="50" rows="10" class="help" tabindex="2" title="Enter Detailed Description" ></textarea></p>
<p><input name="no_issue" type="checkbox" id="no_issue" class="cmb" />No Issues to Report</p>
<p class="label">Enter Current Vehicle Mileage:</p>
<p><input type="tel" name="record_mileage" class="required" tabindex="3" title="&nbsp;Enter Current Mileage&nbsp;" size="25"/></p>
<p><input type="submit" name="Submit" value="Send"/></p>​

// Your jQuery code..
​$(function() {
    $('#issue_ta').on('blur' , function(){
       var val =  $('#issue_ta').val();
        if(val == ''){
           $('#no_issue').attr('disabled', true);                 
        }
        else{
             $('#no_issue').attr('disabled', false);    
        }
    });
});​

実際の例については、このフィドルを確認できます http://jsfiddle.net/sushanth009/A46py/

于 2012-09-05T15:54:57.257 に答える
1

これ

 $("input.cmb").attr("disabled", true);

これであるべき

 $("input.cmb").attr("disabled", "disabled");
于 2012-09-05T15:43:13.927 に答える
1

ありがとうございます。それぞれの応答は、私を正しい方向に導きました。

    <script type="text/javascript">
 function enable_cb(textarea) {
    if ($(textarea).val() !== "") {
        $("input.cmb").prop("disabled", true);
    }
    else {
        $("input.cmb").prop("disabled", false);
    }
}
</script>

     Comments:<br />
<p><textarea name="issue" id="issue_ta" cols="50" rows="10" class="help" tabindex="2" title="Enter Detailed Description" onblur="enable_cb(this);"></textarea></p>
<p><input name="no_issue" type="checkbox" id="no_issue" class="cmb" />No Issues to Report</p>
<p class="label">Enter Current Vehicle Mileage:</p>
<p><input type="tel" name="record_mileage" class="required" tabindex="3" title="&nbsp;Enter Current Mileage&nbsp;" size="25"/></p>
<p><input type="submit" name="Submit" value="Send"/></p>
</form>​

フィドルリンク

于 2012-09-06T03:48:10.380 に答える
0

「テキスト領域を離れた後、それを無効にするものはないようです。」

.blurこの状況で役立ちます - ユーザーが要素を離れたときにそれを検出し、目的の効果を適用できます。.blur ドキュメント

于 2012-09-05T15:49:21.613 に答える