Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue with change event inside a form #80

Open
lashisu opened this issue Aug 30, 2018 · 4 comments
Open

Issue with change event inside a form #80

lashisu opened this issue Aug 30, 2018 · 4 comments

Comments

@lashisu
Copy link

lashisu commented Aug 30, 2018

Prerequisites

Add below code to see the unexpected behavior

$(document).on('change', '.form-control', function(){
console.log(1);
});

Expected Behavior

With below code Expected Behavior is to get the console every time on value change (change event)

$(document).on('change', '.form-control', function(){
console.log(1);
});

Current Behavior

But getting the console log infinite times on focus of the element even without the value change. This is happening with every element(like textbox, textarea, radio, checkbox and every element) inside a form which is bind with "change" event.

$(document).on('change', '.form-control', function(){
console.log(1);
});

Failure Information (for bugs)

On adding "change" change event with form element inside a form causing issue. Event triggered infinite times just focusing on the element. Its is working fine without the form tag.

Steps to Reproduce

  1. Open https://demos.creative-tim.com/material-dashboard/docs/2.0/components/forms.html
  2. Open browser console and run below code
$(document).on('change', '.form-control', function(){ console.log(1); }); 3. Now focus on first input control. Actually in documentation first two sections( "Overview" & "Form controls") are inside a form. So check within these blocks, you will get the raised issue. ![error](https://user-images.githubusercontent.com/1376383/44834754-43d80780-ac5c-11e8-963f-536bfec100f8.jpg)
@XavierLJJ
Copy link

image

setInterval(function(){n.each(function(t,e){var n=ir(e);n.val()!==n.attr("value")&&n.trigger("change")})},100)})
this is the code that cause infinite loop because the input doesn't have attribute "value" in html

@groovemen
Copy link
Contributor

Hello there,

Thank you for using our products, if you will initialize the function like this:

  $('body').bootstrapMaterialDesign({
    autofill: false
  });

the problem of infinite loop onChange will be solved.

Best,
Stefan

@juliocepar
Copy link

Hello there,

Thank you for using our products, if you will initialize the function like this:

  $('body').bootstrapMaterialDesign({
    autofill: false
  });

the problem of infinite loop onChange will be solved.

Best,
Stefan

It worked for me, only when I edited bootstrapMaterialDesign function initialization directly in my project file material-dashboard.min.js

@john-abdo21
Copy link

$(document).on('input', '.form-control', function(){
console.log(1);
});

By using the input event, the console log will only be triggered when the value of the input element actually changes, preventing the infinite loop when focusing on the element without any value change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants