我的 .ajaxValidator({
url : "<%=basePath%>pages/user/check.jsp?name="+$("#name").val(),
这个url传递到check页面后,name为空,为什么啊。我猜测是在这里取值的时候是取得空值,所以传过去之后就是空的了。怎么取值在这里?有经验的告诉下,弄了好久了。
ps.直接写 url : "<%=basePath%>pages/user/check.jsp?name=aaaaaaa", is ok
[b]问题补充:[/b]
我把代码贴上来吧
[code="java"]<br> $(document).ready(function(){<br> $.formValidator.initConfig({<br> formid:"register",<br> onerror:function(msg){<br> alert(msg)<br> },<br> onsuccess:function(){<br> alert("注册成功");<br> }<br> });<br> $("#name").formValidator({<br> onshow:"请输入用户名,只有输入\"maodong\"才是对的",<br> onfocus:"用户名至少6个字符,最多10个字符",<br> oncorrect:"该用户名可以注册"<br> }).inputValidator({<br> min:6,<br> max:10,<br> onerror:"你输入的用户名非法,请确认"<br> }).regexValidator({<br> regexp:"username",<br> datatype:"enum",<br> onerror:"用户名格式不正确"<br> }).ajaxValidator({<br> type : "get",<br> url : "<%=basePath%>pages/user/check.jsp?name="+$("#name").val(),<br> datatype : "html",<br> success : function(data){<br> if($.trim(data)=="3")<br> return true;<br> else<br> return false;<br> },<br> buttons: $("#button"), <br> error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");},<br> onerror : "该用户名不可用,请更换用户名",<br> onwait : "正在对用户名进行合法性校验,请稍候..."<br> });<br> });</p> <pre><code> </script> </head> <body> <form id="register" action="<%=basePath%>pages/user/saveregister.jsp" method="post"> <table> <tr> <td> username </td> <td> <input type="text" id="name" name="name" value="" /> </td> <td> <div id="nameTip" style="width: 250px"></div> </td> <td> </tr> <tr> <td> <input type="submit" id="button" value="submit" /> </td> </tr> </table> </form> </body> </code></pre> <p>[/code]<br> [b]问题补充:[/b]<br> 也不行。实在是郁闷。不知道怎么回事。<br> 我直接用document.getElementById("name").value也不行。</p> <p>谁能告诉我哪里的问题!~~~~~~~~~~~~~~~~~~~~~</p>
你这样当然有问题了,你在$(document).ready();里就这样写了,那是dom加载完就执行的
也就是初始化页面时,执行$("#name").val(),自然得到的是"",
你应该在提交表单的时候再调用ajaxValidator({
url : "<%=basePath%>pages/user/check.jsp?name="+$("#name").val(),
你这里的name是从哪里取的?
一下附上各种取值方式:
获取select被选中项的文本
var item = $("select[@name=items] option[@selected]").text();
select下拉框的第二个元素为当前选中值
$('#select_id')[0].selectedIndex = 1;
radio单选组的第二个元素为当前选中值
$('input[@name=items]').get(1).checked = true;
获取值:
文本框,文本区域:$("#txt").attr("value");
多选框checkbox:$("#checkbox_id").attr("value");
单选组radio: $("input[@type=radio][@checked]").val();
下拉框select: $('#sel').val();
控制表单元素:
文本框,文本区域:$("#txt").attr("value",'');//清空内容
$("#txt").attr("value",'11');//填充内容
多选框checkbox: $("#chk1").attr("checked",'');//不打勾
$("#chk2").attr("checked",true);//打勾
if($("#chk1").attr('checked')==undefined) //判断是否已经打勾
单选组radio: $("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项
下拉框select: $("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项
$("11112222").appendTo("#sel")//添加下拉框的option
$("#sel").empty();//清空下拉框
那试试下面这句看行不行
[code="js"]$("#name").attr("value"); [/code]