페이지에 드롭 다운 목록이 있습니다. jquery 및 해당 작업을 사용하여이 드롭 다운 목록에서 change 이벤트를 구현합니다. 여기 내 jquery 코드입니다.select change 이벤트에서 문제가 발생했습니다.
drupal_add_js('$(document).ready(
$('.$form['title']['select'].').change(function() {
var str = "";
var date = "";
$("'.$form['title']['select'].' option:selected").each(function() {
str += $(this).text() + " ";
date += this.value + " ";
$("#edit-titletext").val(str);
$("#edit-datetext").val(date);
});
})
)
.change();', 'inline', 'header');
여기서 title은 필드 이름이고 select는 해당 유형입니다. titletext 및 datetext는 텍스트 상자의 필드 이름입니다. 내 코드가 제대로 작동했다.
하지만 같은 페이지에 다른 드롭 다운 목록이있는 블록을 배치합니다. 이제 블록의 드롭 다운에서 값을 변경하면 jquery 코드도이 변경 이벤트에 대해 실행됩니다. 이제 두 개의 드롭 다운 목록에서 change 이벤트가 실행되었습니다. 그리고 'title'이라는 이름을 가진 첫 번째 드롭 다운 목록에서만 실행되기를 원합니다.
내 문제를 해결할 수있는 모든 일 ...
편집 : JQuery와 .change()
이벤트가 셀렉터에 일치하는 모든 요소에 바인딩
$form = array();
$form['title'] = array(
'#type' => 'select',
'#title' => t('Select a forum'),
'#page callback' => 'drupal_get_form',
'#page arguments' => array('test_select'),
'#access callback' => TRUE,
'#options' => $options
);
올바른 셀렉터를 결정할 수 있도록 PHP'$ form' 객체를 추가 할 수 있습니까? – andyb
여기 내 양식 코드가 있습니다.
$form = array(); $form['title'] = array( \t '#type' => 'select', \t '#title' => t('Select a forum'), \t '#page callback' => 'drupal_get_form', \t '#page arguments' => array('test_select'), \t '#access callback' => TRUE, \t '#options' => $options, \t );
– Ahmad