排除小部件的输入字段以父表单提交

时间:2014-08-01 11:40:33

标签: jquery form-submit jquery-ui-widget-factory

我已使用widget factory创建了一个小部件,并添加了<input>所需的元素。可以在form元素内初始化此窗口小部件,从而在提交父窗体时提交添加的字段。

我想告诉form不要提交指定的输入,这必须在小部件内完成,因为这是知道添加的input元素的人。

我们的想法是从内部窗口小部件中获取最接近的form并在提交表单之前禁用输入(例如.prop("disabled", true)),然后重新启用它们。

重要的是不要打扰小部件之外的代码,我希望保持较低的耦合。

不幸的是,在小工具的_create期间,this.element未添加到DOM,因此无法在表单中添加处理程序&#39}提交活动。

示例代码:

$(function ()
{
    $.widget("Foo.Widget",{
        _create: function(){
            this.element.append($("<input type='radio'>").attr("name", "theInput"));

            // bind to the containing form's submit event
            var form = this.elemeng.closest("form"); // returns $()

        };

    });
});

可以绑定后者,但这需要用户以某种方式与窗口小部件进行交互,这不是强制性的。

我可以添加一个计时器并将其绑定一点,因为用户在前几秒内不会提交它(邪恶的解决方案)。

此外,我可以传递窗口小部件的上下文或父form作为选项,但这是我想要避免的。

0 个答案:

没有答案