如何使用此示例使用 javascript 将代码添加到我的表单标签中

How do I add code to my form tag with javascript using this example?

本文关键字:添加 代码 我的 表单 标签 javascript 何使用      更新时间:2023-09-26

我正在使用重力表单wordpress插件,我想将oninput添加到我的表单标签中...我正在按照此页面上的说明进行操作:https://www.gravityhelp.com/documentation/article/gform_form_tag/

但是,他们提供的示例是用于替换表单标签中的某些内容,而不是向表单标签添加某些内容。应如何编辑以下代码以将 oninput 事件添加到标签中,而不是替换标签中的某些内容?我不知道用什么代替预置...

add_filter( 'gform_form_tag', 'form_tag', 10, 2 );
function form_tag( $form_tag, $form ) {
    if ( $form['id'] != 3 ) {
        //not the form whose tag you want to change, return the unchanged tag
        return $form_tag;
    }
    $form_tag = preg_replace( "|action='(.*?)'|", "action='custom_handler.php'", $form_tag );
    return $form_tag;
}

好吧,我们这里有一个XY问题的经典案例。 您询问如何更改标记以包含oninput属性,但实际上您正在尝试完成其他操作。

所以,首先我将直接回答您的问题:

add_filter( 'gform_form_tag', 'form_tag', 10, 2 );
function form_tag( $form_tag, $form ) {
    if ( $form['id'] != 3 ) {
        //not the form whose tag you want to change, return the unchanged tag
        return $form_tag;
    }
    // We know the form has the 'form ' in it, so replace that with 'form' plus the oninput you want
    $form_tag = str_ireplace( "<form ", "<form oninput='myFunction() ", $form_tag );
    return $form_tag;
}

但实际上,可能有一种更好/更简单的方法。

编写一些JavaScript - 因为你显然要使用javascript - 与表单连接:

// Since WordPress loads jQuery in no-conflict mode, this is the preferred "document ready"
jQuery(function($) {
    // "gform_3" represents the form you want to target.
    $('#gform_3 input, #gform_3 textarea').on('change', function() {
        // Do your "oninput" work here
    }
});

只需更改 ID 以匹配您要定位的表单的 ID - 例如,如果您的表单是 ID 23,则使其#gform_23

我同意Cale更简单的答案;但是,在某些情况下,您可能仍然希望将事件属性(任何事件属性)放在

本身上。这是一个插件,使它变得非常简单。

http://gravitywiz.com/gravity-forms-tag-editor/

用法示例:

new GW_Tag_Editor( array(
    'tag'          => 'form',
    'form_id'      => 123,
    'oninput'      => 'myFunction()'
) );