要疯了,关于给input 隐藏域复制的问题?

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';