构建jQuery插件

时间:2011-01-24 21:08:19

标签: asp.net jquery forms jquery-plugins

在设置一些可编辑的选项后,我正在为验证构建一个简单的插件, 骑自行车后我写了所有的字段:

$(this).submit(function () {

其中“this”是主要元素(表格)。

现在我想知道在asp.net中也使用这个插件,所以不使用html表单,只有一些div的输入,点击特定的按钮就开始...

所以我知道在这里我必须更改提交...并尝试在点击按钮时将其绑定...我不知道如何解决这个问题...

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

您需要帮助才能绑定点击事件?为此你写

$('#buttonID').click(function(e)
{
   // do some logic

   e.preventDefault(); // make sure that ie. a href is not followed
});

答案 1 :(得分:0)

你应该看看我在做什么here。我的插件劫持了一个表单帖子,将数据跨域提交到我的服务器而不是托管服务器。整个方法可用于验证。

这是我的代码的一个快速而肮脏的例子。

$.fn.myplugin= function (options) {

    var settings = {
        setting1: undefined,
        setting2: undefined,
        setting3: undefined,

        beforeSubmit: function () { return true; },
        afterSubmit: function () { },
        approve: function () { },
        decline: function () { },
        error: function () { },
        exception: function (xhr, status, error) { }
    };

    // If options exist, lets merge them
    // with our default settings
    if (options) {
        $.extend(settings, options);
    }

    //ensure this is attached only to a FORM element
    if (!$(this).is("form"))
        throw ('Specified object is not a valid form.  This plugin can only be attached to a form element.');

    $(this).live("submit", function (event) {
        var result = true;

        //NEVER EVER EVER allow the form to submit to the server
        event.preventDefault();

        if (settings.beforeSubmit)
            result = settings.beforeSubmit();

        if (result != null && !result)
            return false;

        //do stuff

    }); //end live submit

}; 

然后,用法看起来像这样

$('#form-id').myplugin({
    setting1: 'value',
    setting2: 'value',
    setting3: 'value'
});