0

2つのチェックボックスと1つのテキストフィールドがあります。1つのチェックボックスがオンになっているときにいくつかのデータをフィールドに入力し、他のチェックボックスがオンになっているときに別のデータを入力したいのですが、これらのチェックボックスの両方を同時にチェックしないでください。ただし、これらのチェックボックスがオフの場合、テキストフィールドは空になります。次のjqueryコードで両方のチェックボックスがオフになっている場合にフィールドを空にすることを除いて、すべての機能を実現しました。

jQuery(document).ready(function() {
jQuery('#a').click(function() {
if(jQuery('#a').is(":checked")) {
    jQuery('#b').removeAttr('checked');
    name = "hello World!"; 
jQuery('#c').val(name);
}


});
jQuery('#b').click(function() {
    if(jQuery('#b').is(":checked")) {
        jQuery('#a').removeAttr('checked');
        name = "Not hello World!"; 
    jQuery('#c').val(name);

    }
});
jQuery('#a,#b').click(function(){
if(jQuery('#a,#b').not(":checked")){
name = "";
jQuery('#c').val(name);
}
});
    });

これが私のhtmlです:

 <input type="textarea" id="c" />
<input type="checkbox" id="a" />
<input type="checkbox" id="b" />

両方のチェックボックスがチェックされていない場合、テキストフィールドを空にする方法を教えてください。

また、あるテキストフィールドの値を取得して別のテキストフィールドに配置するにはどうすればよいですか。また、最初のテキストフィールドの値が何らかのタイプのhtmlまたはjavascriptコードである場合はどうなりますか。

もう1つ、変数「name」の値をphpコードにする必要があります。どうすればいいのか教えてください。

4

1 に答える 1

3

ひとつの関数にまとめれば簡単だと思います。下記参照、

デモ: http://jsfiddle.net/XqypD/1/

  1. ハンドラー.changeの代わりに使用.click
  2. あなたのコードには、実際にはこれらのチェックボックス用の 2 つのハンドラーがあり、ロジックが難しくなっています。

コード:

$(function () {
    $('#a, #b').change(function () {
        var $a = $('#a'), $b = $('#b'), $c = $('#c');
        if (this.id == 'a' && this.checked) {
           $c.val('Hello World!');
           $b.prop('checked', false);
        } else if (this.id == 'b' && this.checked) {
           $c.val('Not hello World!');
           $a.prop('checked', false);
        } else {
           $c.val('');
        }
    });
});
于 2012-10-02T20:15:13.270 に答える