jQuery/JavaScript和嵌套if语句
我有一个多语言页面,我想用用户的语言显示表单验证错误。我使用隐藏的输入来确定用户正在浏览哪种语言版本,如下所示:<input type="hidden" name="lang" id="lang" value="<?php echo $lang; ?>" />
jQuery/JavaScript和嵌套if语句
脚本的PHP一侧工作,但jQuery似乎并未意识到传递哪种语言。无论我在哪个语言网站上显示英文错误消息。
下面的代码(我删除了长度其他表单字段):
$(document).ready(function(){
$('#contact').submit(function() {
$(".form_message").hide();
var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/;
var lang = $("#lang").val();
var name = $("#name").val();
var dataString = {
'lang': lang,
'name': name
}
if (name == '') {
if (lang == 'de') {
$("#posted").after('<div class="form_message"><p><span class="error">Fehler:</span> Bitte gib deinen Namen an!</p></div>');
} else {
$("#posted").after('<div class="form_message"><p><span class="error">Error:</span> Please enter your name!</p></div>');
}
$("#name").focus();
$("#name").addClass('req');
} else {
$("#loading").show();
$("#loading").fadeIn(400).html('<img src="/img/loading.gif" />Loading...');
$.ajax({
type: "POST",
url: "/contact-post.php",
data: dataString,
cache: false,
success: function(html){
$("#loading").hide();
$("#posted").after('<div class="form_message"><p>Thank you! Your contact request has been sent.</p></div>');
$("#contact input:submit").attr("disabled", "disabled").val("Success!");
}
});
}return false;
}); });
这个问题似乎是在嵌套的if语句的地方。 jQuery/JavaScript甚至可以识别嵌套ifs吗?如果是的话,为什么它不起作用?
有一两件事值得一试,将导致此行为是你没有任何其他的元素页面id = lang
。如果有的话,你的$("#lang")
选择器将只能找到第一个,如果这不是你的隐藏输入,它将不会像你期望的那样工作。
是否jQuery的/ JavaScript的甚至recnogize嵌套IFS?
是他们
为什么不是识别嵌套的,如果的?
您可以包括页面的HTML?这个javascript根本没有出现任何问题 - 所以我有一个感觉是问题与页面的其他部分有关。
除非是,放在右警报(郎)你的if语句之前,看看它设置为。我的猜测是,它不会被设置为您认为应该设置的值。
JavaScript是区分大小写的,或许你#lang
元素的值是在不同的情况下。你可以迫使它降低这样的... ...
var lang = $("#lang").val().toLowerCase();
这是全部小写,但谢谢你的帮助提示! – rayne 2010-03-31 14:49:55
检查值
alert("'" + lang + "' :" + lang.length);
是嵌套的'if'子句是有效的。 – 2010-03-31 14:38:36
设置后找出'lang'的值。它是否被正确设置为'de'? – Aaron 2010-03-31 14:39:22
你在找萤火虫的错误吗? http://getfirebug.com/ – Samuel 2010-03-31 14:44:52