值正在传递,但警报在 javaScript 中不起作用

Values are passing, but the alerts are not working in javaScript

本文关键字:javaScript 不起作用      更新时间:2023-09-26

当用户对特定产品进行评分时,我希望弹出下面显示的警报,但它们不起作用。所有值都来自数据库中的表。输入标签的数据工作正常。

这是我的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'];
   }
}

基本上对我来说,通过键盘手动更改值时它工作正常。

请注意,输入字段上的"更改"事件仅在失去焦点时触发。

例如,如果您通过 jQuery 更改值(我猜您是),那么您应该通过在末尾添加 .trigger('change'); 来手动触发更改事件。

类似的问题可以在这里找到:jQuery - 检测隐藏输入字段的值变化。

您可以尝试以下几段位,基本上您可以使用按键或按键事件跟踪输入的变化。

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/:)希望这有帮助