2012-10-04 3 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" /> 

:

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

이제 진짜 걱정이됩니다. id 'a'로 체크 상자를 클릭하면 id 옵션 'f'가있는 텍스트 옵션 필드의 코드가 id가 'e'인 메타 버튼 텍스트 필드에 입력됩니다. 내가 필요한 수정은 id 'c'와 'd'가있는 metabox 텍스트 필드의 데이터가 먼저 id 옵션 'f'가있는 테마 옵션 텍스트 필드에서 코드에 추가된다는 것입니다. 아이디 'c'가있는 메타 옥 텍스트 필드의 값이 '이름 : 내 이름은/(여기에 id'c '가있는 텍스트 필드의 값이 될 것입니다)'에 추가되고 id가 'd'인 메타 버튼 텍스트 필드의 값 '가 "name2에 추가됩니다 : 귀하의 이름은/(여기에 ID'd '가있는 텍스트 필드의 값이됩니다)"입니다.

또한이 체크 박스 동작에 jquery 코드를 사용하고 있습니다. 다음은 jQuery 코드입니다. 나는 아이디 'C'내 METABOX 텍스트 필드의이 같은 안녕하세요 세계로 값을하거나하지 안녕하세요을 원하지 않는

$(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 코드에 결함이 있습니다. 앞서 설명한 것처럼 그 필드의 가치를 원합니다. 이 점에 대해 도와주세요. 나는 아주 좌절한다.

+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