JavaScript error

来源:互联网 发布:2016淘宝追加评论期限 编辑:程序博客网 时间:2024/05/17 01:37

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" onclick='validate("<%=str%>")' />,然后在js里定义validate函数:<script type="text/javascipt">function validate(name){    alert(name);//即将str的值在js里显示出来了}</script>

特别注意:

 onclick='validate("<%=str%>")'

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

参考网站:新浪博客


4 如何在JavaScript文件中访问session

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

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

eg:

<input type="submit" name="submit" onclick="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");


0 0