我上传了一个联系表格,上面有姓名,电子邮件地址,电话号码,留言(textarea),验证码文本和提交按钮。以下是提交按钮的点击代码
$("#submit_btn").click(function() {
var code = <?php echo($_SESSION['secure']);?>;
var scode = $('input[name=code]').val();
if(code != scode) {
output = "Security code doesn't match. Retry";
$("#result").hide().html(output).slideDown();
} else {
//get input field values
var user_name = $('input[name=name]').val();
var user_email = $('input[name=email]').val();
var user_phone = $('input[name=phone]').val();
var user_message = $('textarea[name=message]').val();
var proceed = true;
if(user_name==""){
$('input[name=name]').css('background-color','yellow');
proceed = false;
}
if(user_email==""){
$('input[name=email]').css('background-color','yellow');
proceed = false;
}
if(user_phone=="") {
$('input[name=phone]').css('background-color','yellow');
proceed = false;
}
if(user_message=="") {
$('textarea[name=message]').css('background-color','yellow');
proceed = false;
}
if(user_phone=="") {
$('input[name=phone]').css('background-color','yellow');
proceed = false;
}
}
});
问题是,我需要做一些手动刷新来运行此代码。我尝试用其他一些代码替换整个点击代码(比如一个简单的消息提醒等)并且效果很好。 你能不能告诉我为什么这段代码一直没有运行? 从服务器运行并通过apache时也会发生同样的情况。请原谅我把整个代码放在这里,它太大了。
答案 0 :(得分:1)
问题可能出在第2行,您可以在其中为code
变量指定值。您应该在PHP代码周围加上引号,否则只要代码不是数字就会引发错误。我怀疑安全代码有时是字母数字,而有时只是数字,这就是为什么它有时可以工作,有时不工作。如果我是对的,请告诉我。
说明问题:这是有问题的一行:
var code = <?php echo($_SESSION['secure']);?>;
假设当前的安全码为“1234”,因此该行变为:
var code = 1234;
这很好。但鉴于安全代码为“abcd”,你最终得到了这个:
var code = abcd;
您的代码中可能没有名为abcd
的变量,因此您获得ReferenceError并且函数执行停止。正如我所说,解决方法是将PHP代码放在引号中:
var code = "<?php echo($_SESSION['secure']);?>";
这将导致:
var code = "abcd";