2012-10-04 40 views
0

其實我在我的metabox文本字段上有兩個複選框,並且在該文本字段上還有兩個metabox文本字段。另外兩個文本字段在我的主題選項中,我必須把一些HTML和JavaScript代碼。因此,這裏是我的代碼:jQuery和主題選項

Metabox文本字段和複選框:

<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'的主題選項文本字段的代碼將被放入metabox文本字段中,ID爲'e',但只需稍作修改。我需要的修改是,來自帶有id'c'和'd'的metabox文本字段的數據將首先被添加到已從主題選項文本字段以id'f'抓取的代碼中,以這種方式帶有id'c'的metabox文本字段的值被添加到「name:我的名字是/(這將是具有id'c'的文本字段的值)」以及具有id'd的metabox文本字段的值'被添加到「name2:你的名字是/(這將是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(''); 
    } 
}); 
}); 

顯然是有缺陷在此jQuery代碼,因爲我不想用id「C」我metabox文本字段的這些值,如世界,你好還是不喂世界。正如我前面所解釋的,我想要這個領域的價值。在這方面請幫助我。我非常沮喪。

+0

不幸的是,這不是一個真正的WordPress問題。是的,您的網站正在運行WordPress,並且您正在嘗試編寫WP屏幕,但這完全是JavaScript/jQuery問題。所以我要關閉它並將它遷移到Stack Overflow,它將成爲主題。但爲了加快速度,我還留下了一個可以幫助你的答案。 – EAMann

回答

1

首先,使用jQuery而不是$。在WordPress環境中,jQuery以「noconflict」模式運行,因此$變量不可用。

其次,我會重寫你的事件處理程序有點:

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

這似乎處理您所描述的情況。如果不是,請編輯您的問題,逐步解釋每個複選框發生變化時應該發生的情況,以便我們可以相應編寫腳本。

+0

非常感謝您的支持EAMann。好吧,請檢查此澄清版本http://stackoverflow.com/questions/12751766/wordpress-theme-options-and-metaboxes。這就是我真正需要的。 – user1666698