JSP中有个隐藏域标签
<input type="hidden" id="searchType" value=""/>
通过ajax请求后台,返回数据后,data.length>0
通过这个:$("#searchType").val("111");
死活不能把值附上去
$("#searchType").attr("value","1111");
也不行
要疯了
使用ajax的时候加上 async : false 试试?
如:
$.ajax({
type : "GET",
async : false,
data : {id:1},
url : url,
success : function(d) {
$("#searchType").attr("value","1111");
},
error : function(e) {}
});
$("#searchType").val("111"); 这样是可以赋值的,跟隐不隐藏无关,你试着把 value="" 删除了
你怎么知道没赋值呢?searchType是hidden控件你又看不到。自己同时检查是否存在多个searchType的控件,id选择器只会返回第一个出现的dom
1,确认下js执行的顺序
2,检查下#searchType 是否有多个
3,attr这个东西 最要不要去改变东西。尽量用prop()去改变html的属性
alert看看操作的是什么啊: alert($("#searchType").html());
看看是不是你的input,如果是的话 执行完 查看源码,看页面是否有值
首先确定是否执行了赋值这一步,可以在赋值语句前加一句 alert(0); ,Ajax没有正确执行可能性更大
如果要查看是否正确赋值了,可以F12,定位到具体元素,可以查看到值
<input type="hidden" id="searchType" value=""/>
检查是否放在body标签内?
首先打印ajax请求返回值
其次如果val()、attr()都赋不了值
试试prop();
和attr用法一样
html:
js:
$.ajax({type : "GET",async : false,data : "",url : url,success : function(d) {
$("#token").html('');
}});
先将hidden取消隐藏,设置为正常的input再
重新导入query文件
确认好id是唯一的再去赋值
$("#searchType").val("111");
可以设置成全局变量 然后直接读取
document.getElementById("searchType").value = '111';