微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

解决方法

由于对此没有回复,我决定使用 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',"cursor": "default"}); // disable submit button
        };
    });
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。