当用户对特定产品评分时,我希望弹出下面显示的提醒,但它们无效。所有值都来自数据库中的表。输入标签的数据正常工作。
这是我的HTML代码:
<input class="rating form-control input-star-rate" id="<?php if($jfeta3 != null) { echo $jfeta3['product_id']; } else { echo $rateid; } ?>" name="<?php echo $arate_num; ?>" value="<?php echo $ratea; ?>" data-min="0" data-max="5" data-step="0.3" data-size="xs" style="display: none; text-align: center;"/>
这是我的javaScript代码:
$(function(){
$(document).ready(function(e) {
var $stars = $('.input-star-rate');
$stars.bind('change', function() {
alert("comon akar");
var $this = $(this);
alert($this);
var ratingValue = $this.val();
alert(ratingValue);
var ratingValue2 = parseFloat(ratingValue);
alert(ratingValue2);
});
});
});
这是我的PHP代码。
$product_id = $new['id'];
$jsqla3 = mysql_query("select * from user_star_rate where product_id='$product_id' and email='$visit_email'") or die(mysql_error());
$jfeta3 = mysql_fetch_assoc($jsqla3);
if($jfeta3 != null) {
$ratea = $jfeta3['rate_value'];
$arate_num = $new['rate_number'];
} else {
$arate_num = $new['rate_number'];
if($new['rate_number'] > 0){
$ratea = $new['rate_score'] / $new['rate_number'];
$ratea2 = $new['rate_score'];
$rateid = $new['id'];
$ratenum = $new['rate_number'];
}else{
$ratea = $new['rate_score'];
$ratea2 = $new['rate_score'];
$rateid = $new['id'];
$ratenum = $new['rate_number'];
}
}
答案 0 :(得分:2)
基本上对我来说,通过键盘手动更改值时工作正常。
请注意,输入字段上的“更改”-Event仅在失去焦点时触发。
如果您正在通过jQuery更改值(我猜你是这样),那么你应该通过在末尾添加.trigger('change');
来手动触发更改事件。
可以在此处找到类似的问题:jQuery - Detect value change on hidden input field。
答案 1 :(得分:1)
您可以尝试以下这些位,基本上您可以使用按键或keydown事件跟踪输入的更改。
var stars = $('.input-star-rate');
stars.bind('keydown', function() {
alert("comon akar");
var thisrate = $(this);
alert(thisrate);
var ratingValue = $(this).val();
alert(ratingValue);
var ratingValue2 = parseFloat(ratingValue);
alert(ratingValue2);
});
这是工作小提琴http://jsfiddle.net/h7hnsyh7/ :) 希望这有帮助