Ninja Forms: Multi Part Forms - Next Step On Field Click (jQuery)
I've been having trouble implementing jQuery click events with Ninja Forms + Multi Step form plugin. The goal is to eliminate the need for the user to click the "Next" button.
Using the following function, I can successfully trigger a click on the next button but only on the first step. Once the second step loads the entire function seems to be unbound (due to the changing of the DOM?).
jQuery(document).on( 'nfFormReady', function( e, layoutView ) {
jQuery( ".nf-field-element ul li label" ).click(function() {
var nextButton = jQuery(this).closest('.nf-form-content').find('.nf-next');
jQuery(nextButton).click();
});
});
Is there a better solution to achieve this? I can't seem to find any concrete developer resources on the Multi-Part Form plugin.
jquery wordpress forms ninja-forms
add a comment |
I've been having trouble implementing jQuery click events with Ninja Forms + Multi Step form plugin. The goal is to eliminate the need for the user to click the "Next" button.
Using the following function, I can successfully trigger a click on the next button but only on the first step. Once the second step loads the entire function seems to be unbound (due to the changing of the DOM?).
jQuery(document).on( 'nfFormReady', function( e, layoutView ) {
jQuery( ".nf-field-element ul li label" ).click(function() {
var nextButton = jQuery(this).closest('.nf-form-content').find('.nf-next');
jQuery(nextButton).click();
});
});
Is there a better solution to achieve this? I can't seem to find any concrete developer resources on the Multi-Part Form plugin.
jquery wordpress forms ninja-forms
add a comment |
I've been having trouble implementing jQuery click events with Ninja Forms + Multi Step form plugin. The goal is to eliminate the need for the user to click the "Next" button.
Using the following function, I can successfully trigger a click on the next button but only on the first step. Once the second step loads the entire function seems to be unbound (due to the changing of the DOM?).
jQuery(document).on( 'nfFormReady', function( e, layoutView ) {
jQuery( ".nf-field-element ul li label" ).click(function() {
var nextButton = jQuery(this).closest('.nf-form-content').find('.nf-next');
jQuery(nextButton).click();
});
});
Is there a better solution to achieve this? I can't seem to find any concrete developer resources on the Multi-Part Form plugin.
jquery wordpress forms ninja-forms
I've been having trouble implementing jQuery click events with Ninja Forms + Multi Step form plugin. The goal is to eliminate the need for the user to click the "Next" button.
Using the following function, I can successfully trigger a click on the next button but only on the first step. Once the second step loads the entire function seems to be unbound (due to the changing of the DOM?).
jQuery(document).on( 'nfFormReady', function( e, layoutView ) {
jQuery( ".nf-field-element ul li label" ).click(function() {
var nextButton = jQuery(this).closest('.nf-form-content').find('.nf-next');
jQuery(nextButton).click();
});
});
Is there a better solution to achieve this? I can't seem to find any concrete developer resources on the Multi-Part Form plugin.
jquery wordpress forms ninja-forms
jquery wordpress forms ninja-forms
asked Aug 28 '18 at 17:24
Edward Westbury
112
112
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
I found this in the Ninja Forms Developer Slack channels on how to bind functions to page changes. Maybe this could be a solution for you.
You'll need to hook into the page change:
nfRadio.channel( 'nfMP' ).trigger( 'change:part', this );
See:
/assets/js/front-end/models/partCollection.js#33
It seems that if you hook your action to the page change, it will rebind to the new DOM on the next page.
An alternative solution that worked for me is to bind your jQuery to a parent element of your form that won't get removed from the DOM using the following:
jQuery(document).on('click', '#parentid'`, function( e layoutView ) {
jQuery( ".nf-field-element ul li label" ).click(function() {
var nextButton = jQuery(this).closest('.nf-form-content').find('.nf-next');
jQuery(nextButton).click();
});
});
I haven't tested this, but hopefully it points you in the right direction.
Also, it's possible that you might get performance issues using on('click'), I've heard, but it doesn't seem to be effecting my form at all.
add a comment |
The first answer is a good start, but the jQuery used requires a double-click in order to register. The following script loaded into the page footer works like a charm:
(function($) {
$(document).ready(function () {
// on ID (#) click, do the following:
$(document).on('click', '#clickedID', function(event) {
event.preventDefault;
// click the input button associated with .nf-next class
$(".nf-next").click();
});
});
})( jQuery );
In order to write standard jQuery in WordPress, like above, wrap standard jQuery in the following:
(function($) {
<Standard jQuery>
})( jQuery );
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f52063364%2fninja-forms-multi-part-forms-next-step-on-field-click-jquery%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
I found this in the Ninja Forms Developer Slack channels on how to bind functions to page changes. Maybe this could be a solution for you.
You'll need to hook into the page change:
nfRadio.channel( 'nfMP' ).trigger( 'change:part', this );
See:
/assets/js/front-end/models/partCollection.js#33
It seems that if you hook your action to the page change, it will rebind to the new DOM on the next page.
An alternative solution that worked for me is to bind your jQuery to a parent element of your form that won't get removed from the DOM using the following:
jQuery(document).on('click', '#parentid'`, function( e layoutView ) {
jQuery( ".nf-field-element ul li label" ).click(function() {
var nextButton = jQuery(this).closest('.nf-form-content').find('.nf-next');
jQuery(nextButton).click();
});
});
I haven't tested this, but hopefully it points you in the right direction.
Also, it's possible that you might get performance issues using on('click'), I've heard, but it doesn't seem to be effecting my form at all.
add a comment |
I found this in the Ninja Forms Developer Slack channels on how to bind functions to page changes. Maybe this could be a solution for you.
You'll need to hook into the page change:
nfRadio.channel( 'nfMP' ).trigger( 'change:part', this );
See:
/assets/js/front-end/models/partCollection.js#33
It seems that if you hook your action to the page change, it will rebind to the new DOM on the next page.
An alternative solution that worked for me is to bind your jQuery to a parent element of your form that won't get removed from the DOM using the following:
jQuery(document).on('click', '#parentid'`, function( e layoutView ) {
jQuery( ".nf-field-element ul li label" ).click(function() {
var nextButton = jQuery(this).closest('.nf-form-content').find('.nf-next');
jQuery(nextButton).click();
});
});
I haven't tested this, but hopefully it points you in the right direction.
Also, it's possible that you might get performance issues using on('click'), I've heard, but it doesn't seem to be effecting my form at all.
add a comment |
I found this in the Ninja Forms Developer Slack channels on how to bind functions to page changes. Maybe this could be a solution for you.
You'll need to hook into the page change:
nfRadio.channel( 'nfMP' ).trigger( 'change:part', this );
See:
/assets/js/front-end/models/partCollection.js#33
It seems that if you hook your action to the page change, it will rebind to the new DOM on the next page.
An alternative solution that worked for me is to bind your jQuery to a parent element of your form that won't get removed from the DOM using the following:
jQuery(document).on('click', '#parentid'`, function( e layoutView ) {
jQuery( ".nf-field-element ul li label" ).click(function() {
var nextButton = jQuery(this).closest('.nf-form-content').find('.nf-next');
jQuery(nextButton).click();
});
});
I haven't tested this, but hopefully it points you in the right direction.
Also, it's possible that you might get performance issues using on('click'), I've heard, but it doesn't seem to be effecting my form at all.
I found this in the Ninja Forms Developer Slack channels on how to bind functions to page changes. Maybe this could be a solution for you.
You'll need to hook into the page change:
nfRadio.channel( 'nfMP' ).trigger( 'change:part', this );
See:
/assets/js/front-end/models/partCollection.js#33
It seems that if you hook your action to the page change, it will rebind to the new DOM on the next page.
An alternative solution that worked for me is to bind your jQuery to a parent element of your form that won't get removed from the DOM using the following:
jQuery(document).on('click', '#parentid'`, function( e layoutView ) {
jQuery( ".nf-field-element ul li label" ).click(function() {
var nextButton = jQuery(this).closest('.nf-form-content').find('.nf-next');
jQuery(nextButton).click();
});
});
I haven't tested this, but hopefully it points you in the right direction.
Also, it's possible that you might get performance issues using on('click'), I've heard, but it doesn't seem to be effecting my form at all.
answered Nov 14 '18 at 19:50
Bobby Bosler
388
388
add a comment |
add a comment |
The first answer is a good start, but the jQuery used requires a double-click in order to register. The following script loaded into the page footer works like a charm:
(function($) {
$(document).ready(function () {
// on ID (#) click, do the following:
$(document).on('click', '#clickedID', function(event) {
event.preventDefault;
// click the input button associated with .nf-next class
$(".nf-next").click();
});
});
})( jQuery );
In order to write standard jQuery in WordPress, like above, wrap standard jQuery in the following:
(function($) {
<Standard jQuery>
})( jQuery );
add a comment |
The first answer is a good start, but the jQuery used requires a double-click in order to register. The following script loaded into the page footer works like a charm:
(function($) {
$(document).ready(function () {
// on ID (#) click, do the following:
$(document).on('click', '#clickedID', function(event) {
event.preventDefault;
// click the input button associated with .nf-next class
$(".nf-next").click();
});
});
})( jQuery );
In order to write standard jQuery in WordPress, like above, wrap standard jQuery in the following:
(function($) {
<Standard jQuery>
})( jQuery );
add a comment |
The first answer is a good start, but the jQuery used requires a double-click in order to register. The following script loaded into the page footer works like a charm:
(function($) {
$(document).ready(function () {
// on ID (#) click, do the following:
$(document).on('click', '#clickedID', function(event) {
event.preventDefault;
// click the input button associated with .nf-next class
$(".nf-next").click();
});
});
})( jQuery );
In order to write standard jQuery in WordPress, like above, wrap standard jQuery in the following:
(function($) {
<Standard jQuery>
})( jQuery );
The first answer is a good start, but the jQuery used requires a double-click in order to register. The following script loaded into the page footer works like a charm:
(function($) {
$(document).ready(function () {
// on ID (#) click, do the following:
$(document).on('click', '#clickedID', function(event) {
event.preventDefault;
// click the input button associated with .nf-next class
$(".nf-next").click();
});
});
})( jQuery );
In order to write standard jQuery in WordPress, like above, wrap standard jQuery in the following:
(function($) {
<Standard jQuery>
})( jQuery );
edited Dec 28 '18 at 0:05
answered Dec 19 '18 at 0:57
Ryan Lafazan
465
465
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f52063364%2fninja-forms-multi-part-forms-next-step-on-field-click-jquery%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown