在 Ninja Forms 中至少强制使用两个表单字段之一

时间:2021-03-02 21:12:28

标签: javascript jquery wordpress plugins ninja-forms

使用 WordPress 中的 ninja 表单插件,我目前将姓名、电子邮件、电话作为表单字段。我想要它,所以名称是必需的,并且填写电子邮件或电话,以便提交表格而不会出错。这可能吗?

我在他们的文档中没有看到任何地方提到这一点,如果无法通过插件选项实现,我也在考虑使用 jQuery。

1 个答案:

答案 0 :(得分:0)

由于对此没有回复,我决定使用 jQuery。我花了一段时间才弄清楚您需要在 nfFormReady 上运行您的函数。

它检查字段 1 或字段 2 是否有值,如果有则启用提交按钮,如果没有则禁用提交按钮。这不是最优雅的解决方案,但可以满足我的需要。除了下面的代码之外,我还添加了一个星号,并在填写时在另一个有条件的必填字段中将其删除。

$(document).on( 'nfFormReady', function() { // this is important

    // settings: for 2 dynamic-required fields
    var formID = '2'; // form ID
    var fieldID1 = '9'; // field ID one
    var fieldID2 = '12'; // field ID two
    var submitID = '11'; // Submit button ID

    $('#nf-form-' + formID + '-cont #nf-field-' + submitID + '-wrap input').attr('disabled', true).css({"background": "#cccccc", "cursor": "default"}); // disable submit button

    // on keypress/change enable submit button
    $('#nf-form-' + formID + '-cont input').on('keyup keypress focusout change', function() {
        if(($('#nf-form-' + formID + '-cont #nf-field-' + fieldID1 + '-wrap input').val()) || ($('#nf-form-' + formID + '-cont #nf-field-' + fieldID2 + '-wrap input').val())){
          $('#nf-form-' + formID + '-cont #nf-field-' + submitID + '-wrap input').attr('disabled', false).css({"background": "", "cursor": "pointer"}); // enable submit button
        }else{
          $('#nf-form-' + formID + '-cont #nf-field-' + submitID + '-wrap input').attr('disabled', true).css({"background": "#cccccc", "cursor": "default"}); // disable submit button
        };
    });
});
相关问题