我在wordpress工作,我有一个带有两个具有相同类名和不同值的提交按钮的html表单。我通过ajax传递提交按钮点击的值并在屏幕上显示它。现在我的问题是只有第一个提交按钮值通过,第二个提交按钮值永远不会显示在屏幕上。请指导以下是我的代码。
代码
<form id="mydispimage" action="" method="post">
<select id="category" style="width: 250px; background-color: lightgrey;" name="category">
<option disabled="disabled" selected="selected" value="">Select category</option>
<option value="Cutie Pie">Cutie Pie</option>
<option value="Chubby">Chubby</option>
<option value="Dimples">Dimples</option>
</select>
<input class="displayimage" name="displayimage" type="submit" value="star1" />
<input class="displayimage" name="displayimage" type="submit" value="star2" />
</form>
JQuery的
jQuery(function ($) {
$(".displayimage").click(function (e) { //form is intercepted
e.preventDefault();
//show timer
jQuery("#timer").css("display", "block");
jQuery("#participate").css("display", "block");
var vote = jQuery(".displayimage").val();
alert(vote);
//$("#timer").show(slow);
//serialize the form which contains secretcode
// var sentdata = $(this).serializeArray();
//var vote = 1;
//Add the additional param to the data
var sentdata = ({
action: 'displaymyimage',
foo: vote
})
//set sentdata as the data to be sent
$.post(yes.ajaxurl, sentdata, function (res) { //start of funciton
//$("#myresult").append(res.l);
//alert(res);
$("#myresult").html(res);
//$.parseJSON(data);
return false;
} //end of function
,
'json'); //set the dataType as json, so you will get the parsed data in the callback
}); // submit end here
});
答案 0 :(得分:3)
更改此
var vote= jQuery(".displayimage").val();
到这个
var vote= jQuery(this).val();
您需要使用$(this)
。否则,您将始终在匹配.displayimage
类的元素中添加第一个值。这就是为什么你总能看到第一个按钮的值。