jQuery Uncaught SyntaxError:意外标识符

时间:2019-01-04 07:33:22

标签: javascript jquery

请获取未捕获的SyntaxError:第5行email subject: {中出现意外的标识符,该代码也无法正常工作。有什么问题吗?

<script>
jQuery(document).ready(function($){
  $("#contactform").validate({
    rules: {
      email subject: {
        required: true,
      },
      email: {
        required: true,
        email: true
      },
      message:{
        required: true,
      }
    },
    messages: {
      email subject: {
        required: "Please select a valid email subject.",
    },
      email: {
        required: "Please your valid email address",
        email: "Please your valid email address"
      },
      message: {
        required: "Please enter your message",
      }
    }
  });
});
</script>

编辑1:我已经将电子邮件地址更改为email_address,并且在html中问题也消失了,但是jquery验证不起作用...

这是我的完整代码:

<?php
require_once 'core/init.php';
include 'includes/head.php';

$hasError = false;
$sent = false;

if (isset($_POST['submitform'])) {
  $email = trim($_POST['email']);
  $message = trim(htmlspecialchars($_POST['message'], ENT_QUOTES));

  $fieldsArray = array(
    'email' => $email,
    'message' => $message
  );

  $errorArray = array();

  foreach($fieldsArray as $key => $val) {
    switch ($key) {
      case 'message':
      if(empty($val)) {
        $hasError = true;
        $errorArray[$key] = ucfirst($key) . " field was left empty.";
      }
      break;
      case 'email':
      if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $hasError = true;
        $errorArray[$key] = "Invalid Email Address entered";
      }else{
        $email = filter_var($email, FILTER_SANITIZE_EMAIL);
      }
      break;
    }
  }

  if($hasError !== true) {
    $to = "example@gmail.com";
    $subject = "Message ";
    $msgcontents = "Email: $email<br>Message: $message";
    $headers = "MIME-Version: 1.0 \r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1 \r\n";
    $headers .= "From: $name <$email> \r\n";
    $mailsent = mail($to, $subject, $msgcontents, $headers);
    if($mailsent) {
      $sent = true;
      unset($email);
      unset($message);
    }
  }
}
?>

<div class="container-fluid">
<h4 class="text-left" id="backcolor" style="margin-top:205px;">
<a style="text-decoration:none;" href="customerservice.php">Customer Service</a>&ensp;>&ensp;Contact us</h4>
<h2>Contact us</h2>
<h4>Contact Us</h4>
<br>
<p>Please visit our <a href="customerservice.php">Customer Service</a> page, which may provide the answer you are looking for.</p>
<br>
<p>If there are ways that we can better delight you, please contact us by completing the form below.</p>
<div class="row">
<form id="contactform" method="post" novalidate>
  <?php
  if($sent == true) {
    echo "<h2 class='success'>Thanks, your message has been sent</h2>";
  } elseif($hasError == true) {
    echo '<ul class"errorlist">';
    foreach($errorArray as $key => $val){
      echo "<li>" . ucfirst($key) . " field error - $val</li>";
    }
    echo '<ul>';
  }
  ?>

<div class="form-group col-md-6">
  <label for="email_subject"><span>* </span>Email Subject</label>
  <select class="form-control" id="email_subject" name="email_subject">
    <option >Select Email Subject</option>
    <option >My Account</option>
    <option >Orders</option>
    <option >Product Information Questions</option>
    <option >Website Technical Questions</option>
    <option >Suggestions or Comments</option>
  </select>
</div>
</div>
<br>
<div class="row">
<div class="form-group col-md-6">
  <label for="message"><span>* </span>Message</label>
  <textarea id="message" name="message" value="<?= (isset($message) ? $message : "");?>" class="form-control" rows="10"
  style="background-color:#EEEEEE; border:none;"></textarea>
</div>
</div>
<br>
<div class="row">
  <div class="form-group col-md-6">
    <label for="email"><span>* </span>Your Email Address</label>
    <input type="email" name="email" value="<?= (isset($email) ? $email : "");?>" class="form-control"
    id="email" style="background-color:#EEEEEE;">
  </div>
</div>
<br>
<div class="form-group">
<input type="submit" value="SUBMIT" class="btn btn-success btn-lg" name="submitform">
</div><div class="clearfix"></div>
</form>
</div>

<script>
jQuery(document).ready(function($){
  $("#contactform").validate({
    rules: {
      email_subject: {
        required: true,
      },
      email: {
        required: true,
        email: true
      },
      message:{
        required: true,
      }
    },
    messages: {
      email_subject: {
        required: "Please select a valid email subject.",
    },
      email: {
        required: "Please your valid email address",
        email: "Please your valid email address"
      },
      message: {
        required: "Please enter your message",
      }
    }
  });
});
</script>

在head.php中:

<script src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js"></script>

请帮助!!!

4 个答案:

答案 0 :(得分:0)

您不能像以前那样在对象键中使用空格

email subject: {
    required: true
}

代替将键括在引号中

"email subject": {
    required: true
}

或使用不带空格的键。

email_subject: {
    required: true
}

答案 1 :(得分:0)

对象属性名称不应有任何空格。 电子邮件主题: {         要求:正确,       }, 用email_subject或任何含空格的易名替换电子邮件主题。

答案 2 :(得分:0)

就像我的答案上方的答案一样,您可能会更改email subject而不是email_subject,因为标识符不能使用空格,并且您需要在输入表单上更改标识符,例如{{1 }}

在这里,让我帮助您编写代码

<input type="email" id="email_subject" name="email_subject">

别忘了在表单输入中,您需要将名称和ID更改为<script> jQuery(document).ready(function($){ $("#contactform").validate({ rules: { email_subject: { required: true, }, email: { required: true, email: true }, message:{ required: true, } }, messages: { email_subject: { required: "Please select a valid email subject.", }, email: { required: "Please your valid email address", email: "Please your valid email address" }, message: { required: "Please enter your message", } } }); }); </script>

答案 3 :(得分:0)

不要在对象键中给空格 使用此-

<script>
jQuery(document).ready(function($){
  $("#contactform").validate({
    rules: {
      email_subject: {
        required: true,
      },
      email: {
        required: true,
        email: true
      },
      message:{
        required: true,
      }
    },
    messages: {
      email_subject: {
        required: "Please select a valid email subject.",
    },
      email: {
        required: "Please your valid email address",
        email: "Please your valid email address"
      },
      message: {
        required: "Please enter your message",
      }
    }
  })}
});
</script>