我是jQuery和javascript的新手,我主要用于php。我正在升级我的网站,所以它包含一些小的ajax来提高可用性并让我忙碌!
我正在使用这个简单的小脚本,我把它放在一起登录页面。一切都很好,但我有几个问题我想问一下!
$('#loginForm .submit').click(function(event) {
$('.error').hide();
event.preventDefault();
var errors = 0;
var loginEmail = $('#loginEmail').val();
var loginPassword = $('#loginPassword').val();
if (loginEmail.length == 0) {
$('#loginEmail').after('<div class="error"></div>');
errors++;
}
if (loginPassword.length == 0) {
$('#loginPassword').after('<div class="error"></div>');
errors++;
}
if (!errors) {
$('.submit').submit();
}
});
您会注意到函数中的第一行代码是;
$('.error').hide();
现在在php中我通常会使用;
if (isset(........)) {
在javascript中是否有一种简单的方法来执行此操作,因为当用户第一次激活该函数时,将没有类 .error 的HTML?
此外,我正在尝试向函数添加新参数以及事件参数,我该怎么做?我试过以下几个?
$('#loginForm .submit').click(function(event, var) {
$('#loginForm .submit').click(function(event var) {
$('#loginForm .submit').click(function('event', 'var') {
似乎一切都没有用。然后我再次通过php,jQuery / javascript不是我的强项!
由于
答案 0 :(得分:0)
在执行操作之前,您可以使用以下语法检查函数$()
是否选择了元素:
if ($('.error').length)
{
// actions
}
答案 1 :(得分:0)
如果默认情况下.error
- div存在于DOM中并且只是隐藏,则不能只检查$('.error')
的长度,因为即使它是空的,长度也会返回1. / p>
你可以这样做:
if($('.error').html().length !== 0){
//do something
}
这将检查error-div的包含字符串,因此如果它为空,则length将返回0.
我还是建议设置一个布尔变量。如果发生错误,则将其设置为false,您可以检查var,并且不必为这么简单的任务查询DOM元素。
对于你的第二个问题,尝试这样的事情:
$('#loginForm .submit').bind("click", {variable1: var}, handleSubmit);
function handleSubmit(event){
var passedVar = event.data.variable1;
}