2

我正在尝试在 jquery UI 模式对话框中验证用户输入。Jquery 验证插件用于验证。

尝试在弹出按钮单击中验证验证

<form id="frm">
    <div>
        <button name="btn" id="btn" type="button" >OpneModal</button>
    <div id="dlg" style="display:none">
        <div>
            Name: <input type="text" id="txtName" name="txtName"/>
        </div>
        <div>
        </div>
        </div>
        </div>
    </form>


 $(
     function () {
           var rules = {
            txtName: {
                required: true
            }
        };
        var messages = {
            txtName: {
                required: "Please enter name"
            }
        };
       $("#frm").validate({rules:rules, messages:messages});


          $("#btn").click(
              function () {

                  $("#dlg").dialog(
                      {
                          modal: true,
                          buttons: {
                              "Save": function () {
                                alert(  $("#frm").valid());
                              },
                              "Cancel": function () {
                                  $("#dlg").dialog("close");
              }
                          }

                      }
                      );
              }
              );

      });

但验证总是成功的。

代码在 js fiddle:http: //jsfiddle.net/aGJrZ/6/

4

1 回答 1

1

jQuery Validation 插件要求所有输入元素必须包含在一组<form></form>标签中。但是,使用 DOM 检查器,您可以看到当您的对话框被构建时,它是在<form></form>整个之外。

重构 HTML 以便form包含您的对话框中...

<button name="btn" id="btn" type="button">Open Modal</button>
<div id="dlg" style="display:none">
    <form id="frm">
        <div>
            Name:  <input type="text" id="txtName" name="txtName" />
        </div>
    </form>
</div>

演示:http: //jsfiddle.net/aGJrZ/9/

于 2013-08-24T16:55:33.743 回答