Adding data-bv-trigger=“null” make bootstrapvalidator works only one time











up vote
0
down vote

favorite












I'm using bootstrap validator callback to valid a field. I also want to fire the bootstrap validator only on a button click. So I binds the button with bootstrap validator using



$(document).ready(function () {
$('#mybtn').click(function () {
$('#formId').bootstrapValidator('validate');
});
});


But the problem is that the validator fires only the first time and then if the validation is false it shows the error messages and then if doesn't gets fired again with that button click. And if true then the corresponding functionality working.



here is my html



<form id="formId">
<input type="text" name="Iname" data-bv-trigger='null'/>
</form>


here is my validator



$('#formId').bootstrapValidator({
fields: {
Iname: {
validators: {
callback: {
callback: function (value, validator, $field) {
if(!isValidData(value)) {
return {
valid: false,
message: "invalid message"
};
}
else {
return { valid: true };
}
}
}
}
}
}

}).on('success.form.bv', function (e) {
e.preventDefault();
//Do corresponding operation
});


I only want to fire the bootstrapValidator only at button click. If i omit the data-bv-trigger attribute the validator fires on keypress of that particular field but everything works fine.
Initially i though that it unbinds my click event. but I was wrong. It actually fires the bootstrap validator but the validation is not working.










share|improve this question




























    up vote
    0
    down vote

    favorite












    I'm using bootstrap validator callback to valid a field. I also want to fire the bootstrap validator only on a button click. So I binds the button with bootstrap validator using



    $(document).ready(function () {
    $('#mybtn').click(function () {
    $('#formId').bootstrapValidator('validate');
    });
    });


    But the problem is that the validator fires only the first time and then if the validation is false it shows the error messages and then if doesn't gets fired again with that button click. And if true then the corresponding functionality working.



    here is my html



    <form id="formId">
    <input type="text" name="Iname" data-bv-trigger='null'/>
    </form>


    here is my validator



    $('#formId').bootstrapValidator({
    fields: {
    Iname: {
    validators: {
    callback: {
    callback: function (value, validator, $field) {
    if(!isValidData(value)) {
    return {
    valid: false,
    message: "invalid message"
    };
    }
    else {
    return { valid: true };
    }
    }
    }
    }
    }
    }

    }).on('success.form.bv', function (e) {
    e.preventDefault();
    //Do corresponding operation
    });


    I only want to fire the bootstrapValidator only at button click. If i omit the data-bv-trigger attribute the validator fires on keypress of that particular field but everything works fine.
    Initially i though that it unbinds my click event. but I was wrong. It actually fires the bootstrap validator but the validation is not working.










    share|improve this question


























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I'm using bootstrap validator callback to valid a field. I also want to fire the bootstrap validator only on a button click. So I binds the button with bootstrap validator using



      $(document).ready(function () {
      $('#mybtn').click(function () {
      $('#formId').bootstrapValidator('validate');
      });
      });


      But the problem is that the validator fires only the first time and then if the validation is false it shows the error messages and then if doesn't gets fired again with that button click. And if true then the corresponding functionality working.



      here is my html



      <form id="formId">
      <input type="text" name="Iname" data-bv-trigger='null'/>
      </form>


      here is my validator



      $('#formId').bootstrapValidator({
      fields: {
      Iname: {
      validators: {
      callback: {
      callback: function (value, validator, $field) {
      if(!isValidData(value)) {
      return {
      valid: false,
      message: "invalid message"
      };
      }
      else {
      return { valid: true };
      }
      }
      }
      }
      }
      }

      }).on('success.form.bv', function (e) {
      e.preventDefault();
      //Do corresponding operation
      });


      I only want to fire the bootstrapValidator only at button click. If i omit the data-bv-trigger attribute the validator fires on keypress of that particular field but everything works fine.
      Initially i though that it unbinds my click event. but I was wrong. It actually fires the bootstrap validator but the validation is not working.










      share|improve this question















      I'm using bootstrap validator callback to valid a field. I also want to fire the bootstrap validator only on a button click. So I binds the button with bootstrap validator using



      $(document).ready(function () {
      $('#mybtn').click(function () {
      $('#formId').bootstrapValidator('validate');
      });
      });


      But the problem is that the validator fires only the first time and then if the validation is false it shows the error messages and then if doesn't gets fired again with that button click. And if true then the corresponding functionality working.



      here is my html



      <form id="formId">
      <input type="text" name="Iname" data-bv-trigger='null'/>
      </form>


      here is my validator



      $('#formId').bootstrapValidator({
      fields: {
      Iname: {
      validators: {
      callback: {
      callback: function (value, validator, $field) {
      if(!isValidData(value)) {
      return {
      valid: false,
      message: "invalid message"
      };
      }
      else {
      return { valid: true };
      }
      }
      }
      }
      }
      }

      }).on('success.form.bv', function (e) {
      e.preventDefault();
      //Do corresponding operation
      });


      I only want to fire the bootstrapValidator only at button click. If i omit the data-bv-trigger attribute the validator fires on keypress of that particular field but everything works fine.
      Initially i though that it unbinds my click event. but I was wrong. It actually fires the bootstrap validator but the validation is not working.







      jquery bootstrapvalidator






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 17 at 17:17

























      asked Nov 17 at 14:59









      Subhashis Pal

      95




      95
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote



          accepted










          I've solved my requirement. After done a investigation by debugging bootstrapValidator.js I found that, after validating a element bootstrap keep a mark on that element by adding data attribute(Don't know in details about where it store the attr or what value stored) which only resets on a event which we actually input using data-bv-trigger attribute. By default it resets that attr on key press event of that element. At the same time it also validate the fields and shows error if any.
          But if we set data-bv-trigger="null", after one validation the data attr never resets. So any further validation on that element never happened.
          To resolve the problem if get that if bind my button click with revalidateField then it will force validate the filed. here is the syntax



          $(document).ready(function () {
          $('#mybtn').click(function () {
          $('#formId').bootstrapValidator('revalidateField', $(element));
          });
          });





          share|improve this answer





















            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',
            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
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53352406%2fadding-data-bv-trigger-null-make-bootstrapvalidator-works-only-one-time%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote



            accepted










            I've solved my requirement. After done a investigation by debugging bootstrapValidator.js I found that, after validating a element bootstrap keep a mark on that element by adding data attribute(Don't know in details about where it store the attr or what value stored) which only resets on a event which we actually input using data-bv-trigger attribute. By default it resets that attr on key press event of that element. At the same time it also validate the fields and shows error if any.
            But if we set data-bv-trigger="null", after one validation the data attr never resets. So any further validation on that element never happened.
            To resolve the problem if get that if bind my button click with revalidateField then it will force validate the filed. here is the syntax



            $(document).ready(function () {
            $('#mybtn').click(function () {
            $('#formId').bootstrapValidator('revalidateField', $(element));
            });
            });





            share|improve this answer

























              up vote
              0
              down vote



              accepted










              I've solved my requirement. After done a investigation by debugging bootstrapValidator.js I found that, after validating a element bootstrap keep a mark on that element by adding data attribute(Don't know in details about where it store the attr or what value stored) which only resets on a event which we actually input using data-bv-trigger attribute. By default it resets that attr on key press event of that element. At the same time it also validate the fields and shows error if any.
              But if we set data-bv-trigger="null", after one validation the data attr never resets. So any further validation on that element never happened.
              To resolve the problem if get that if bind my button click with revalidateField then it will force validate the filed. here is the syntax



              $(document).ready(function () {
              $('#mybtn').click(function () {
              $('#formId').bootstrapValidator('revalidateField', $(element));
              });
              });





              share|improve this answer























                up vote
                0
                down vote



                accepted







                up vote
                0
                down vote



                accepted






                I've solved my requirement. After done a investigation by debugging bootstrapValidator.js I found that, after validating a element bootstrap keep a mark on that element by adding data attribute(Don't know in details about where it store the attr or what value stored) which only resets on a event which we actually input using data-bv-trigger attribute. By default it resets that attr on key press event of that element. At the same time it also validate the fields and shows error if any.
                But if we set data-bv-trigger="null", after one validation the data attr never resets. So any further validation on that element never happened.
                To resolve the problem if get that if bind my button click with revalidateField then it will force validate the filed. here is the syntax



                $(document).ready(function () {
                $('#mybtn').click(function () {
                $('#formId').bootstrapValidator('revalidateField', $(element));
                });
                });





                share|improve this answer












                I've solved my requirement. After done a investigation by debugging bootstrapValidator.js I found that, after validating a element bootstrap keep a mark on that element by adding data attribute(Don't know in details about where it store the attr or what value stored) which only resets on a event which we actually input using data-bv-trigger attribute. By default it resets that attr on key press event of that element. At the same time it also validate the fields and shows error if any.
                But if we set data-bv-trigger="null", after one validation the data attr never resets. So any further validation on that element never happened.
                To resolve the problem if get that if bind my button click with revalidateField then it will force validate the filed. here is the syntax



                $(document).ready(function () {
                $('#mybtn').click(function () {
                $('#formId').bootstrapValidator('revalidateField', $(element));
                });
                });






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 19 at 10:08









                Subhashis Pal

                95




                95






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53352406%2fadding-data-bv-trigger-null-make-bootstrapvalidator-works-only-one-time%23new-answer', 'question_page');
                    }
                    );

                    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







                    Popular posts from this blog

                    "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

                    Alcedinidae

                    Origin of the phrase “under your belt”?