jQuery.ajax Uncaught SyntaxError:意外的标识符

时间:2015-03-10 13:09:13

标签: javascript jquery ajax

所以我开始犯这个错误并且不明白为什么:

jQuery.ajax Uncaught SyntaxError: Unexpected identifier

我正在尝试将有关客户的一些信息解析为FTP服务器主目录中名为“pricealarm.php”的另一个文件

<script type="text/javascript">
jQuery(document).ready(function() {
    jQuery("#pricealarm-fakeSubmit").click(function(){
      if (jQuery('input[name="pa[offer]"]').val().length > 0 && jQuery('input[name="pa[email]"').val().length > 0 && jQuery('input[name="pa[name]"').val().length > 0 && jQuery('input[name="c_mac"]').val().length > 2 ) {

        //Parsing der Eingegebenen Information in die Datenbank (eigentliches Prozedere in pricealarm.php)
        var parse = {
          currency: jQuery('input[name="pa[currency]"]').val(),
          price: jQuery('input[name="pa[price]"]').val(),
          offer: jQuery('input[name="pa[offer]"]').val(),
          email: jQuery('input[name="pa[email]"]').val(),
          phone: jQuery('input[name="pa[phone]"]').val(),
          name: jQuery('input[name="pa[name]"]').val(),
          product: jQuery('input[name="pa[product]"]').val(),
          variant: jQuery('input[name="pa[variant]"]').val(),
          productID: jQuery('input[name="pa[productID]"]').val(),
          oxArtID: jQuery('input[name="pa[oxArtID]"]').val(),
          shopID: jQuery('input[name="pa[shopID]"]').val() 
        };

        jQuery.ajax(
        {
          type: 'POST',
          url: 'pricealarm.php',
          data: parse,

          success: function() {console.info(parse) },

          error: function() {console.info('pricealarm couldnt parse the data')}
        });
        return false;
    }
    else{
      jQuery('#pricealarm-fakeSubmit')after('<span class="js-oxError_notEmpty">[{ oxmultilang ident="ERROR_MESSAGE_INPUT_NOTALLFIELDS" }]</span>');
    }         
    });
  });
</script>

编辑:更新了适合建议的代码。仍然没有工作 EDIT2:发现错误x.x

2 个答案:

答案 0 :(得分:2)

编辑:我在发布整个代码示例之前提供了此答案。其中一些仍然相关。


我认为您错误地定义了回调函数。它们应该是一个功能对象;就像他们一样,他们正在立即执行。尝试:

  jQuery.ajax({
      type: 'POST',
      url: 'pricealarm.php',
      data: parse,
      success: function() {
          console.info(parse);
      },
      error: function() {
          console.info('pricealarm couldn`t parse the data');
      }
  });

此外,请确保您使用的浏览器了解console.info。或者 - 这是我个人的偏好 - 使用新的jQuery Promise方法进行回调:

  jQuery.ajax({
      type: 'POST',
      url: 'pricealarm.php',
      data: parse,
  }).done(function() {
      console.info(parse);
  }).fail(function() {
      console.info('pricealarm couldn`t parse the data');
  });

最后,我对此并不完全确定,但错误字符串中的反引号(`)可能会导致问题。它们是ECMAScript 6中提出的一些浏览器已经支持的模板语法的一部分。

答案 1 :(得分:1)

我自己发现了错误:

 else{
  jQuery('#pricealarm-fakeSubmit')after('<span class="js-oxError_notEmpty">[{ oxmultilang ident="ERROR_MESSAGE_INPUT_NOTALLFIELDS" }]</span>');
} 

.

之前缺少after
 else{
  jQuery('#pricealarm-fakeSubmit').after('<span class="js-oxError_notEmpty">[{ oxmultilang ident="ERROR_MESSAGE_INPUT_NOTALLFIELDS" }]</span>');
}