获取jsp页面text值问题。
在index.jsp中include几个同样的test.jsp。test.jsp里面有两个输入框,以及提交按钮。现需提交前判断输入框是否为空,在test.jsp文件用do...
在index.jsp中include几个同样的test.jsp。test.jsp里面有两个输入框,以及提交按钮。现需提交前判断输入框是否为空,在test.jsp文件用document.getElementById获取的值为什么是第一个页面的值。想请问大神要是想获取别的页面怎么操作
展开
4个回答
展开全部
这个include模式显然要改变,你应该是在jsp页面循环生成这些相同输入框和按钮。而你这里说的“第一个页面”有概念错误,你的几个test.jsp include进去之后,就全都变成是index.jsp的内容,不存在所谓的第几个页面的。如果你要用js获取输入框指,那么建议你用jquery,用$("#id")获取,他会是所有匹配元素的数组,而不是像document.getElementById 只能获取第一个匹配的元素。
追问
用jquery怎么实现啊,能给点详细的么?谢谢啊。
追答
$("#xx"), jquery关于dom元素选择都是采用这种样式的写法,$是jquery使用的别名,如果跟其他js框架整合,可能会冲突,这样可以用jQuery("#xx")来代替,不过一般项目应该不会跟其他js框架一起用。
""里面的是jquery语法支持的选择dom元素使用的表达式,#xx意思是id为xx的所有dom元素的集合。
$("#xx")获取到的是一个dom元素数组,比如
var yy = $("#xx");
if(yy.length > 0){ //for循环,使用yy[i] 来获取dom元素 }
$(yy[i])将dom元素转换成jquery对象,以使用jquery的其他api.
楼主先可先了解一下jquery的基本用法,这个比较难解释的清楚,基本上用几下就差不多可以了。
展开全部
document.getElementById()只能获取相同id值得第一个,而document.getElementByName()是你所要操作的方法,用数组实现的
更多追问追答
追问
这样啊,我今天试了getElementByName出错了。
追答
document.getElementByName()[0].value你试试,一定好用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
id是惟一的,只能返回一个对象,你现在用的是include相当于是一个页面,里面会有几个text使用同一个id,所以返回时,返回的是找的第一个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最后是把id改为唯一的。不然的话,就像一楼的仁兄说说,用document.getElementsByName,判断空就在js里写if(document.getElementsByName[i].value == ""){return;}就ok了。
追问
document.getElementsByName[i].value 提示对象不支持此属性或方法。用的是input type=text
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询