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>
crmepham
  • 4,676
  • 19
  • 80
  • 155
  • Use jQuery's `data API` for retrieving `data-*` attributes, don't use `attr('data-*')` – Madbreaks Apr 26 '13 at 16:24
  • where is link button which have class name .delete_link ? – rahularyansharma Apr 26 '13 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. – gustavodidomenico Apr 26 '13 at 16:30

3 Answers3

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:

Andrew Lewis
  • 5,176
  • 1
  • 26
  • 31
house9
  • 20,359
  • 8
  • 55
  • 61
1

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

$("#delete_value").val(deleteID);
VisioN
  • 143,310
  • 32
  • 282
  • 281
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;
    });
});
gustavodidomenico
  • 4,640
  • 1
  • 34
  • 50