jQuery SyntaxError:missing:在属性id之后,当获取隐藏的输入时.val()

时间:2014-05-27 19:49:38

标签: jquery

我使用jQuery从隐藏的输入字段中获取值属性,下面是我隐藏的输入字段:

<input type="hidden" id="cat_id" value="<?=$category->cat_id;?>" />

这是获取值的jQuery:

var catId = jQuery("#cat_id").val();

挺直接的吧?但是我收到以下错误:

SyntaxError: missing : after property id

任何Google搜索或此处都会显示与对象相关的结果,但我在这里没有使用任何对象...

整个代码很大但是肯定会在这里:

    <?php if($option->image_path){ ?>

         <?php
         $imgpath = $_SERVER["DOCUMENT_ROOT"]."/wp-content/plugins/metal-work/gates/".$option->image_path;

          $img = new Imagick($imgpath);
          $img->trimImage(0);

          ?>

          <input id="img<?=$option->step_id; ?>" type="hidden" name="img<?=$option->step_id;?>" value="<?=$img; ?>" />
          <input type="hidden" id="cat_id" value="<?=$category->cat_id;?>" />
          <input type="hidden" id="step_id" value="<?=$option->step_id;?>" />
          <input type="hidden" id="action" value="imgPost" />

          <script>

          var catId = jQuery("#cat_id").val();
          var stepId = jQuery("#step_id").val();
          var img = jQuery("img"+stepId).val();
          var imgPost = jQuery("#action").val();

          jQuery.ajax({

                   type: "POST",

                   url: "/wp-content/plugins/metal-work/ajax-imagemagick.php",

                   data: { 'catId':catId, 'stepId':stepId, img:'img', 'imgPost':imgPost },

                        success:function (data){
                              if(data == 'ok'){
                                 alert('success');
                               } else {
                                    alert('Oops something went wrong loading the image.');
                               }

                          },

                       });
                       </script>

                       <label for="step<?=$i;?>-<?=$option->id;?>"><?php echo $img; ?></label><br/>

                  <?php } ?>

此致 瑞克

1 个答案:

答案 0 :(得分:3)

您不能将var声明放在对象文字中。将所有这些移到函数调用之上:

var catId = jQuery("#cat_id").val();
// ...

jQuery.ajax({
  type: "POST",
  // ...
});
  

任何Google搜索或此处都会显示与对象相关的结果,但我在这里没有使用任何对象...

是的,你是。传递给.ajax()的值是一个对象,您使用对象文字来创建它。请参阅MDN - Working with Objects