0

実際、メタボックステキストフィールドに2つのチェックボックスがあり、そのテキストフィールドの上に2つのメタボックステキストフィールドがあります。また、テーマオプションの2つのテキストフィールドで、htmlとjavascriptのコードを入力する必要があります。だからここに私のコードがあります:

メタボックスのテキストフィールドとチェックボックス:

<input type="textarea" id="c" value="Your Name" />
<input type="textarea" id="d" value="My Name" />
<input type="checkbox" id="a" />
<input type="checkbox" id="b" />
<input type="textarea" id="e" />

テーマオプションテキストフィールド:

<input type="textarea" id="f"  />
<input type="textarea" id="g"  />

テーマオプションのテキストフィールドにjavascriptを次のように配置する必要があります。

<div>
<script type=text/javascript> name: 'My Name is/', name2: 'Your name is/', </script> 
</div>

今、本当の心配が来ます。IDが「a」のチェックボックスをクリックすると、IDが「f」のテーマオプションテキストフィールドのコードが、IDが「e」のメタボックステキストフィールドにほとんど変更されずに配置されるようにしたいと思います。必要な変更は、IDが「c」および「d」のメタボックステキストフィールドからのデータが、IDが「f」のテーマオプションテキストフィールドから取得されたコードに最初に追加されることです。 IDが「c」のメタボックステキストフィールドの値が「名前:私の名前は/(IDが「c」のテキストフィールドの値になります)」に追加され、IDが「d」のメタボックステキストフィールドの値が追加されます'が"name2:Your Name is /(Here will be the value of text field with id' d')"に追加されます。

これらのチェックボックスの動作にもjqueryコードを使用しています。これが私のjQueryコードです。

$(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('');
    }
});
});

ID'c'のメタボックステキストフィールドのHelloworldやNotHelloWorldなどの値は必要ないため、このjQueryコードには明らかに欠陥があります。前に説明したように、そのフィールドの値が必要です。この点で私を助けてください。とてもイライラしています。

4

1 に答える 1

1

まず、jQueryの代わりに使用し$ます。WordPress環境では、jQueryは「競合なし」モードで実行されるため、$変数は使用できません。

次に、イベントハンドラーを少し書き直します。

jQuery('#a, #b').change(function () {
    var $this = jQuery(this), // Get a handle on the checkbox we just clicked.
        $c = jQuery('#c'),    // Get a handle on the textbox.
        $d = jQuery('#d'),    // Get a handle on the textbox.
        $e = jQuery('#e'),    // Get a handle on the textbox.
        $f = jQuery('#f'),    // Get a handle on one of our default values.
        $g = jQuery('#g');    // Get a handle on one of our default values.

    if ($this.attr('id') == 'a' && $this.is(':checked')) {
       // Clicking checkbox a will add the content of c and f and place it in e
       // It will also uncheck checkbox b.

       $e.val( $c.val() + ' ' + $f.val() );
       $b.removeAttr('checked');
    } else if ($this.attr('id') == 'b' && $this.is(':checked')) {
       // Clicking checkbox b will add the content of d and g and place it in e
       // It will also uncheck checkbox a.

       $e.val( $d.val() + ' ' + $g.val() );
       $a.removeAttr('checked');
    } else {
       $e.val('');
    }
});

これはあなたが説明するシナリオを処理するようです。そうでない場合は、質問を編集して、各チェックボックスを変更したときに何が起こるかを段階的に説明し、それに応じてスクリプトを作成できるようにしてください。

于 2012-10-05T15:59:20.033 に答える