JavaScript error

0 注意事项

 0.1 在每个页面中都要加载Jquery文件

<script type="text/javascript" src="scripts/jquery-1.9.1.js"></script>


0.2 访问id时一定要加'$'

$("#productName").text(data.productName);


1 如何获取input的值

document.getElementById('').value;? ( X )

正确取法是:eval(document.getElementById('')).value

为什么要将"value"的'v'小写呢?因为MyEclipse它太坑逼(请允许小编粗鲁一次发火)啦,MyEclipse的自动提示是"Value",然后IE就提示"undefined"错误。。。无语,坑了小编两个小时。

2 网站页面中js文字显示乱码

假设使用该.js文件的.jsp页面中的charset设为了"utf-8"。

那么将js文件的所有编码均设为"utf-8",包括:

(1)右键js文件(在MyEclipse中)——>properties——>Text file encoding设置为"utf-8"。

(2)在<script>标签中引用该.js文件时将charset设置为"utf-8"。

参考网站:绿色资源网


3 如何从JSP页面向JavaScript函数传参数

<input type="button" οnclick='validate("<%=str%>")' />,然后在js里定义validate函数:
<script type="text/javascipt">
function validate(name)
{
    alert(name);//即将str的值在js里显示出来了
}
</script>

特别注意:

 οnclick='validate("<%=str%>")'

最外层是单引号,里面才能用双引号。

参考网站:新浪博客


4 如何在JavaScript文件中访问session

个人并没有成功实现过真正的在.js文件中访问。

采取的方法是,在Jsp文件中访问session,向.js文件中的函数传参数。

eg:

<input type="submit" name="submit" οnclick="commitComment(<%= session.getAttribute(Constants._String.SESSION_KEY_LOGINNAME) %>)"/>
<pre name="code" class="html">function commitComment(loginName){
	alert(loginName);
}

 

5 乱码篇

5.1 JavaScript使用$.getJSON()向服务器传过去的数据变成乱码

.js文件中:
var url = 'http://localhost/ajax/postData.action';  
var getParam = {  
    userid:stat_userid,  
    title:encodeURI(document.title,"utf-8"),  
    t:stime  
};  
$.getJSON(url,getParam);  

服务器端:
String title = URLDecoder.decode(title,"utf-8");  


6 如何修改标签的属性

6.1 修改内容、值
注意,内容和值是不同的概念。
$("#productPrice").text("想要设置的内容");
<pre name="code" class="html">$("#productPrice").val("想要设置的值");

 
 参考网站:http://www.w3school.com.cn/jquery/jquery_dom_set.asp 

6.2 对于<img>标签,修改src属性的值

$("#imgId").attr('src',path); 

参考网站:http://www.jb51.net/article/46861.htm

注:其实,通过attr()可以完成对所有属性的操作,包括读和写。

例:

读 属性的值(1个参数):

$("img").attr("width")


设置属性的值:

如上。
参考网站:http://www.w3school.com.cn/jquery/attributes_attr.asp


7 如何判断var类型的变量是否等于null

var loginName ;

if(loginName == 'null')


8 向<input>中输入值后,用Jquery $("#id").attr("value")获取到的还是旧值

$("")是一个jquery对象,而不是一个dom element 
value是dom element的属性 
jquery与之对应的是val() 

所以 使用Jquery 访问<input>的value值时应用 $("#id").val()

参考网站:脚本之家


9 Jquery 设置<textarea>的内容

<textarea id="id_content"></textarea>
$("#id_content").val("这是内容");

10 如何获取<select>选中的值

<select name="birthyear" id="id_year">
<span style="white-space:pre">	</span><option value="2000">2000</option>
	<option value="1999" selected="selected">1999</option>
</select>年

var born_year = $('#id_year option:selected').val();

设置<select 选中的值>
$("#id_year").empty();
for(var i = 1900;i<=currentYear - 1;i += 1){
    if(i == year){
       $("#id_year").append('<option value="' + i + '" selected="selected">'+i+'</option>');
    }else{
       $("#id_year").append('<option value="' + i + '" >'+i+'</option>');
    }
}


11 如何获取radio选中的值


<td><input type="text" class="text" name="name" value="张三" id="id_vipName"/></td>

var sexName;
if($("#id_radio_male").attr("checked") == "checked"){
   sexName = "男";
}else{
   sexName = "女";
}
//$('#sexes input[name="sex"]:checked').val()


设置radio的选中值

var sexName = data.sexName;
if(sexName == '男'){
    $("#id_radio_male").attr("checked","checked");
}else{
    $("#id_radio_female").attr("checked","checked");
}



12 Jquery 使用 $.aJax({data{}})发送数据

 var loginName = $("#id_loginName").val();
    var userTel = $("#id_tel").val();
    var userAdd = $("#id_reAdd").val();
    var password = $("#id_password").val();
    var born_year = $('#id_year option:selected').val();
    var born_month = $('#id_month option:selected').val();
    var born_day = $('#id_day option:selected').val();
    var vipuserName = $("#id_vipName").val();
    
    $.ajax({
        url:commitURI,
        async:false,
        type:'post',
        datatype:'json',
        data:{
    		"sexName":sexName,
    		"loginName":loginName,
    		"userTel":userTel,
    		"userAdd":userAdd,
    		"password":password,
    		"born_year":born_year,
    		"born_month":born_month,
    		"born_day":born_day,
    		"vipuserName":vipuserName
    	},
        success:function (data) {
            alert("修改成功");
            window.location.href="manage-result.jsp";
        },
        error:function (data) {
            alert("System error happens !");
        }
    });

注意,上面的data不可以换成如下方式,即不能直接使用Jquery设置值,否则将获取到旧值。

        data:{
<pre name="code" class="javascript"> <span style="white-space:pre">		</span> "loginName" = $("#id_loginName").val();
   <span style="white-space:pre">		</span> "userTel" = $("#id_tel").val();
    <span style="white-space:pre">		</span> "userAdd" = $("#id_reAdd").val();
   <span style="white-space:pre">		</span> "password" = $("#id_password").val();
   <span style="white-space:pre">		</span> "born_year" = $('#id_year option:selected').val();
   <span style="white-space:pre">		</span> "born_month" = $('#id_month option:selected').val();
   <span style="white-space:pre">		</span> "born_day" = $('#id_day option:selected').val();
   <span style="white-space:pre">		</span> "vipuserName" = $("#id_vipName").val();
},

 

13 Jquery页面跳转成功的示例

1. 

window.open("manage-result.jsp");


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张之海

若有帮助,客官打赏一分吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值