如果有一个页面,您可以从列表中选择特定的代理。必须在忍者表单的隐藏字段中填写经纪人名称。
if(jQuery(\'#broker-list\').length) { //checks if the list exists
jQuery(document).on( \'nfFormReady\', function( e, layoutView ) {
var broker_name = "";
jQuery(document).on("click", ".broker" , function() {
broker_name = jQuery(\'.broker__name\', this).text();
console.log(broker_name); // this works perfectly
if(jQuery(\'#nf-field-33\').length) {
jQuery(this).val(broker_name); //value of field is still empty
}
if(jQuery(\'#nf-field-34\').length) {
jQuery(this).val(broker_name); //value of field is still empty
}
});
});
}
我一直认为你必须用
jQuery(document).on( \'nfFormReady\', function( e, layoutView ) { });
为了用jQuery预先填充Ninja表单中的字段。但在这种情况下,这似乎不起作用。这里怎么了?
我知道PHP可以在字段中填写数据,但在这种情况下这不是一个选项。
当我在控制台中复制/粘贴上面的代码时,它工作得非常好。
SO网友:them.es
根据https://developer.ninjaforms.com/codex/changing-field-values/ 您需要添加.trigger( \'change\' )
以编程方式更改Ninfa表单字段值时。
This should work:
if(jQuery(\'#broker-list\').length) { //checks if the list exists
jQuery(document).on( \'nfFormReady\', function( e, layoutView ) {
var broker_name = "";
jQuery(document).on("click", ".broker" , function() {
broker_name = jQuery(\'.broker__name\', this).text();
console.log(broker_name); // this works perfectly
if(jQuery(\'#nf-field-33\').length) {
jQuery(this).val(broker_name).trigger( \'change\' );
}
if(jQuery(\'#nf-field-34\').length) {
jQuery(this).val(broker_name).trigger( \'change\' );
}
});
});
}