0

我有 2 个 ASP.Net 页面,一个包含一个空的 div,它将保存 jQuery 对话窗口和另一个页面上的 .load() 控件所需的代码,该页面包含我要验证的控件。(它们是包含在常规 HTML 表中的 ASP.Net 文本框)以下代码用于打开对话框并加载包含控件的第二页:

 $(".open-dialog").click(function () {
    $("#hfAddressHash").val($(this).attr('class').split(' ')[1]);
    $.ajaxSetup({ cache: false }) //Stops annoying caching problem.
    $('#dialog').load('jQueryLoad.aspx?Hash='123' + ' #divTest');
    dlg.dialog('open');
  });

第二页显示的控件示例如下:

<table>  
      <tr> 
        <th>Source System(s)</th>
        <td width="160"><asp:Label ID="lblSource" runat="server"></asp:Label></td>
        <th>Firm</th>
        <td><div class="draggable"><asp:Label ID="lblCountry" runat="server"></asp:Label></div></td>
        <td width="20"><asp:ImageButton ID="imgArrow" runat="server" CssClass="copyAddress Country" ImageUrl="/Intranet/_Resources/Icons/arrow.png" /></td>
        <th>Firm</th>
        <td><asp:TextBox ID="txtCountry" CssClass="droppable" runat="server"></asp:TextBox></td>
      </tr>  

我想让上面的 'txtCountry' 控件成为必填字段,例如使用 jQuery 验证。我的验证和对话功能代码如下:

  $("#form1").validate();

  if ($("#txtCountry").is(":visible")) {

    $("#txtCountry").rules("add", { required: true });
  }



  var dlg = $("#dialog").dialog({

    autoOpen: false,
    modal: true,
    height: 820,
    width: 860,
    buttons: {
      Cancel: function () {
        $("#dialog").dialog('close');
      },
      Submit: function () {
        if (!$('#form1').valid()) { // Validate on Submit
          return false;
        }


        var names = [];
        $('#cblTypes input:checked').each(function () {
          names.push($(this).val());
        });
        $.ajax({
          type: "POST",
          url: "AddressView.aspx/postAddress",
          data: '{"OwnerRef":"' + $("#hfClient").val() + '"}',
          async: false,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function (msg) {
            form1.submit();
          },
          error: function (msg) {
            alert(msg.d);
          }
        });
      }
    }
  });

在按下 jquery 对话框中包含的“提交”按钮时,页面不会按预期验证“txtCountry”控件。我在这里想念什么?

4

1 回答 1

0

我马上看到的一件事。在您的 ajax 设置中,您有一些 jsondata部分。

data: '{"OwnerRef":"' + $("#hfClient").val() + '"}',

将其更改为:

data: { OwnerRef: $("#hfClient").val() },
于 2013-10-04T16:29:44.967 回答