无法预填充隐藏的忍者表单字段

时间:2020-01-15 作者:Dennis

如果有一个页面,您可以从列表中选择特定的代理。必须在忍者表单的隐藏字段中填写经纪人名称。

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可以在字段中填写数据,但在这种情况下这不是一个选项。

当我在控制台中复制/粘贴上面的代码时,它工作得非常好。

1 个回复
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\' );
            }
        });
    });
}

相关推荐

JQuery不再加载,找不到Load-Scripts.php(404)

当我打开我的wordpress网站管理面板时,jquery已经不起作用了(它昨天起作用了,我看不出我做了什么改变可以解释这一点)。我遇到的第一个javascript错误是GET https://mywebsite/wp-admin/load-scripts.php?c=0&load%5B%5D=jquery-core,jquery-migrate,utils,underscore,wp-util,wp-sanitize,wp-a11y,updates,jquery-ui-core,jquery-u