Jquery表单中遇到的几个问题

Jquery中获取属性一定要用方法,如attr(),不能像JS那样用点,不然会一直找不到。新手写Jquery很容易写着写着就就混用了,切记两者不能混用。


JS对象和Jquery对象是两种不同的对象,如果JS对象非要用Jquery方法,可以用$(JS对象)的方法进行转换,Jquery想用JS属性或者方法的话可以用Jquery对象.get(0)的方法将其转化为JS对象。


if($(this).attr("id")=="paypal")
    {
	$(".cardPay").hide();
	$(".paypalPay").show();
	$("#email").focus();
    }

写上面这段代码的时候由于我写成了.id所以一直无法达到预期的效果,但是当我将$(this)改成this的时候可以达到效果。在寻找bug的过程中,一直在纠结明明Jquery里面就是要用$(this)呀,为什么不行。我一直在避免JS和Jquery混用,却在不小心还是混用了,刚学Jquery很容易这样,找错误的过程中一定要想到这个容易犯错的问题。


还有要注意在Jquery事件中如果是调用函数,记得只能写函数名,不能加()。


现在到了,Jquery表单的重点知识点之一了,表单重置,Jquery中并没有重置函数,但是JS中有重置函数reset(),我们可以将Jquery对象转换成JS对象再调用此函数,如:

$("#resetForm").click(function(event){
    if(confirm("你确定吗?"))
        $("form").get(0).reset();
});

或者直接重置代码就用JS写了,像这样:

document.getElementById("resetForm").onclick=function(){
    if(confirm("你确定吗?"))
    {
        document.getElementById("form").reset();
    }
};

我在这里出现了一个很严重的错误,之前没怎么注意过,也碰巧没碰上。

我之前给重置按钮取得id名就叫reset,这样就跟JS内部的重置函数重名了,当执行的时候会先找到HTML控件,就会报错,所以无法达到重置效果。一直没注意到这个小细节问题,解决这个问题花了我大概半天的时间。

注意函数名不能和调用那个函数的元素的名字取一样的,不然会报错的。如果是自定义的函数,函数名和元素id(看你用的什么选择器,如果是类选择器就是类名)啥的改其中一个就好了。如果是自带的函数,就只能改id了。





猜你喜欢

转载自blog.csdn.net/weixin_36339245/article/details/80467199
今日推荐