リストから特定のブローカーを選択できるページがある場合。ブローカー名は、Ninja Formsの隠しフィールドに入力する必要があります。
_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を事前入力するためには、jQuery(document).on( 'nfFormReady', function( e, layoutView ) { });
でラップする必要があるといつも思っていました。しかし、それはこの場合はうまくいかないようです。ここはどうしたの?
PHPフィールドにデータを入力する可能性があることは知っていますが、これはこの場合のオプションではありません。
上記のコードをコンソールにコピーして貼り付けると、完全に機能します。
https://developer.ninjaforms.com/codex/changing-field-values/ によると、プログラムでNinfa Formsのフィールド値を変更する場合は、.trigger( 'change' )
を追加する必要があります。
これはうまくいくはずです:
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' );
}
});
});
}