0

I am attempting to set the value of a hidden input field to the same as the value of a clicked link.

This is what I have attempted which doesnt work:

$(document).ready(function(){
$(".delete_link").click(function(){
        var deleteID = $(this).attr("data-value"); 
        $("#delete_value").attr("value") = deleteID;
    });
});

The variable deleteID is correctly set.

and the form for reference:

<form name="delete_form" action="delete_post.php" method="POST">
    <p>Please confirm you want to delete this post.</p>
    <input type="submit" id="delete_submit" name="delete_submit" value="confirm" />
    <input type="hidden" id="delete_value" value="" />
</form>
3
  • Use jQuery's data API for retrieving data-* attributes, don't use attr('data-*') Commented Apr 26, 2013 at 16:24
  • where is link button which have class name .delete_link ? Commented Apr 26, 2013 at 16:24
  • Careful with the submit action. Even if the click trigger is raised, the form will be submitted and there are no warranty that your hidden field will have the value set up. You should handle the submit event of the form and not the delete click. Commented Apr 26, 2013 at 16:30

3 Answers 3

3

use the val method

$("#delete_value").val(deleteID);

also for data attributes you might want to use the data method

$(this).data('value');

links:

Sign up to request clarification or add additional context in comments.

2 Comments

You've overridden the 2nd edit's correction of the syntax error. Somehow I couldn't correct it myself.
looks like somebody else fixed it
1

For all form elements you need to use .val():

$("#delete_value").val(deleteID);

Comments

0

A complete example you (http://jsfiddle.net/79HEY/):

HTML

<form id="deleteform" action="delete_post.php" method="POST">
    <p>Please confirm you want to delete this post.</p>
    <input type="submit" data-id="100" id="delete_submit" name="delete_submit" value="confirm" />
    <input type="hidden" id="delete_value" value="" />
</form>

JavaScript

$(document).ready(function(){
    $("#deleteform").submit(function(){
        var deleteID = $("#delete_submit").data("id");
        $("#delete_value").val(deleteID);
        return true;
    });
});

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.