我试图在Wordpress中使用来自codrops的Contact Form 7插件和this CSS/JS实现自然语言形式。触发器选择自然语言形式的值
它的作用是隐藏选择元素并将其替换为<ul>
,并且相对值生成<li>
儿童。一切都很好,除了这个特定的脚本确实将.cheched类应用于与所选“值”匹配的<li>
元素,但<select>
元素未被触发。有没有办法破解触发选定的值?
我只能假设这应“关闭”方法中完成:
close : function(opt, idx) {
if(!this.open) {
return false;
}
this.open = false;
this.form.fldOpen = -1;
this.fld.className = this.fld.className.replace(/\b nl-field-open\b/,'');
if(this.type === 'dropdown') {
if(opt) {
// remove class nl-dd-checked from previous option
var selectedopt = this.optionsList.children[ this.selectedIdx ];
selectedopt.className = '';
opt.className = 'nl-dd-checked';
this.toggle.innerHTML = opt.innerHTML;
$(this.elOriginal).change();
// update selected index value
this.selectedIdx = idx;
// update original select element´s value
this.elOriginal.value = this.elOriginal.children[ this.selectedIdx ].value;
}
}
else if(this.type === 'input') {
this.getinput.blur();
this.toggle.innerHTML = this.getinput.value.trim() !== '' ? this.getinput.value : this.getinput.getAttribute('placeholder');
this.elOriginal.value = this.getinput.value;
}
}
继zensei建议我试图执行的代码,但选择的元素不会改变。此处,我已经把jQuery的位收盘方法中:
if(this.type === 'dropdown') {
if(opt) {
// remove class nl-dd-checked from previous option
var selectedopt = this.optionsList.children[ this.selectedIdx ];
selectedopt.className = '';
opt.className = 'nl-dd-checked';
this.toggle.innerHTML = opt.innerHTML;
// update selected index value
this.selectedIdx = idx;
// update original select element´s value
this.elOriginal.value = this.elOriginal.children[ this.selectedIdx ].value;
jQuery(this.elOriginal).trigger('select');
}
}
谢谢zensei,我已经看到了Jason的回答,但没有实现它的运气。也许原因是他正在触发* change *状态,而你建议触发* select *。我会尽快给它一个去。谢谢。 –
不幸。我试图添加这样的代码,但选择不会改变: –