Jquery Enable Submit Button on Input Value Change

Jquery Enable Submit Button on Input Value Change

This is my part of my html

<input type="text" name="age" />
<input type="text" name="poscode" />
<input type="submit" name="submit" value="Next >>" disabled="disabled"/>

This is my script

<script type="text/javascript">
$(function(){
var enable = false;
if($("input[name='age']").val != "")
enable = true;
if($("input[name='poscode']").val != "")
enable = true;
if(enable == true) $("input[name='submit']").attr('disabled', '');
});
</script>

This is not working, any idea what i'm doing wrong?

After user filled up two input age & poscode, the submit button should become active ( disabled at start)

1

6 Answers

You can do something like this:

$('input[name="age"], input[name="poscode"]').change(function(){
  if ($(this).val())
  {
    $("input[name='submit']").removeAttr('disabled');
  }
});
2

To enable/disable when key is pressed do this way:

$('input[name="age"], input[name="poscode"]').keyup(function(){
  if ($(this).val())
{
  $("input[name='submit']").removeAttr('disabled');

}else{
$("input[name='submit']").attr('disabled','disabled');
}
});
2

Give this a shot, here is a fiddle that I created so you can play with it.

Did you attach this to the input fields in any way? The way your code is written, I believe the function is called once, after the document has been loaded, and then simply discarded. Give your function a name and attach it to onblur or onchange.

1

Try this example code please

<div class="form-row align-items-center">
          <div class="col-auto">
              <input  type="text" name="inputComment" class="form-control" id="inputComment" placeholder="Your comment goes here">
          </div>
          <div class="col-auto">
               <button disabled id="btnSaveComment" type="button" class="btn btn-success">Save</button>
          </div>
</div>

<script>
  document.getElementById("btnSaveComment").disabled = true;

  $(document).ready(function () {
    $("#inputComment").on("change paste keyup", function () {
                var text = $(this).val();
                if (text.length > 0) {
                    document.getElementById("btnSaveComment").disabled = false;
                }
                else {
                    document.getElementById("btnSaveComment").disabled = true;
                }
            });
        });
</script>

Like sAc already mentioned, you have to remove the attribute 'disabled' altogether.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Chloe Bennett
Author

Chloe Bennett

Chloe Bennett explores the intersection of pop culture, streaming entertainment, digital trends, and contemporary lifestyle. Her weekly commentary reaches thousands of culture enthusiasts.