我想验证父类别不能重复,用了jquery.validate的remote,具体代码如下。怎么能取到父类别的值呢?
现在父类别文本框输入焦点失去的时候,获取不到父文本框的值,传入到GetParentName.aspx文件parentName参数是空值。
具体代码如下:    <script language="javascript" type="text/javascript">        $().ready(function() {            $("#<%=form1.ClientID %>").validate({
            rules: {
            txtParentName: { required: true, maxlength: 20, remote: "GetParentName.aspx?parentName=" + $("#txtParentName").attr("value") },
                    txtChildName: {required: true,maxlength:20 },
                    txtNodePic: {required: true,maxlength:50},
                    txtLinkFile: {required: true,maxlength:50 }
                },
            messages: {
                txtParentName: {required: " 请输入父节点名称!",maxlength:"父节点不能大于20个字符",remote:"父节点重复!"},
                txtChildName: {required: " 请输入子节点名称!",maxlength:"子节点不能大于20个字符"},
                txtNodePic: {required: " 请确认节点图片!",maxlength:"节点图片不能大于40个字符"},
                txtLinkFile: {required: " 请输入节点链接文件!",maxlength:"节点图片不能大于40个字符"}
                }
            });
         });
    </script></head>
<body>
    <form id="form1" runat="server">
    <div>       <center>
        <table id="tabInput" width="80%" align="center">
            <tr>
                <td style="width:100px;" align="right">
                    父类别名称:</td>
                <td align="left">
                    <asp:TextBox ID="txtParentName" runat="server" CssClass="inputCss"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td align="right">
                    子类别名称:</td>
                <td align="left">
                    <asp:TextBox ID="txtChildName" runat="server" CssClass="inputCss"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td align="right">
                    节点图片:</td>
                <td align="left">
                    <asp:TextBox ID="txtNodePic" runat="server" CssClass="inputCss" Width="212px"></asp:TextBox>
                </td>
            </tr>
             <tr>
                <td align="right">
                    节点文件名称:</td>
                <td align="left">
                    <asp:TextBox ID="txtLinkFile" runat="server" CssClass="inputCss" Width="212px"></asp:TextBox>
                 </td>
            </tr>
            <tr>
                <td>
                    &nbsp;</td>
                <td align="left">
                    <asp:Button ID="btnSave" runat="server" Text="保存" onclick="btnSave_Click" 
                        Width="58px" />
                    <asp:Button ID="btnModify" runat="server" Text="修改" 
                        onclick="btnModify_Click" Width="58px" CausesValidation="False" OnClientClick="alert($('#txtParentName').val());" />
                    &nbsp; <asp:TextBox ID="txtParentID" runat="server"></asp:TextBox>
                </td>
                    <input type="hidden" name="btnSubmit" value=" 确定 " />            </tr>
        </table>//GetParentName.aspx 测试文件
public partial class SystemSet_GetParentName : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string parentName = Request.QueryString["parentName"];
        string ret = "true";
        if (parentName == "xx") ret = "false";
        Response.Clear();
        Response.Write(ret);
        Response.End();
    }
}非常感谢!

解决方案 »

  1.   

    谢谢,,我也是刚学jquery在.NET WEBFORM当中应用。
    这样取不到值肯定是哪点用错了。
      

  2.   

    remote修改下:remote:{
    url:"GetParentName.aspx",
    type:"post",
    data:{
         parentName:function() {
            return $("#txtParentName").val();
         }
      }
    }
      

  3.   

    错了 你是get方式 应该是type:"get"
     
      

  4.   

    或者post也可 更改下方法 request.form[""] 呵呵