【问题标题】:parsley 2.0.3 not working with boostrap 3欧芹 2.0.3 不能与引导程序 3 一起使用
【发布时间】:2014-07-26 18:51:29
【问题描述】:

我正在尝试在我的 html 页面上使用 parsely.js 来验证输入框。目前这个html页面包含一个输入框和一个提交按钮。该结构是使用引导程序 3 创建的,此页面不包含 Form 标记。

<div role='form'>
    <div class="row form-group">
        <div class="col-xs-3">
            <label title="fullname">Full Name</label>
        </div>
        <div class="col-xs-4">
            <input type="text" class='form-control' id="name" name="fullName" data-parsley-required="true" data-parsley-required-message="Please insert your name"/>
        </div>
    </div>

  <input type="submit"  class= "btn btn-danger"/> </div>

我正在调用 parsley.js 之类的

function validateInput()
        {

        var handle = $("input[name='fullName']").parsley({
            successClass: "has-success",
            errorClass: "has-error",
            classHandler: function (el) {
              return $(el).closest('.form-group');//not working

            },
            errorsWrapper: "<span class='help-block'></span>",
            errorTemplate: "<span></span>",

        });

        return handle.isValid();
    }

点击提交按钮。它正确返回真/假并创建跨度标签。但不应用错误类。甚至 data-parsley-required-message '请输入你的名字' 不起作用。

当我输入 alert($(el)) 或 alert(el) 时,它会给出 [object Object]。我认为 el 应该是我调用欧芹函数的输入对象。但我无法获得 el.attr('id') 或任何其他属性。它返回未定义。我也试过了

//return el.closest('.form-group');//not working
//return el.$element.closest('.form-group)//not working
//return $(el).$element.closest('.form-group')//not working

我无法使用表单标签,因为我在共享点内容编辑器 Web 部件中使用此 html 结构。

【问题讨论】:

    标签: javascript sharepoint-2010 twitter-bootstrap-3 parsley.js content-editor


    【解决方案1】:

    先说几件事:

    1. Parsley 允许您将其绑定到字段,因此没有表单元素(see docs)不会有问题;

    2. classHandler 函数接收ParsleyField 类型的对象。使用此对象,您可以使用el.$element 访问输入元素(例如:alert(el.$element.attr('id'));

    我对您的validateInput 函数进行了以下更改:

    <script type="text/javascript">
        function validateInput() {
            $("input[name='fullName']").parsley({
                successClass: "has-success",
                errorClass: "has-error",
                classHandler: function (el) {
                    return el.$element.closest('.form-group'); //working
                },
                errorsWrapper: "<span class='help-block'></span>",
                errorTemplate: "<span></span>",
            });
    
            // Returns true / false if the field has been validated. Does not affect UI.
            //$("input[name='fullName']").parsley().isValid());
    
            // validate field and affects UI
            $("input[name='fullName']").parsley().validate();
        }
    </script>
    

    使用此代码,消息正确呈现,successClass 和 errorClass 附加到 div form-group

    见下面working jsfiddle

    【讨论】:

    • 这很好,为我工作,一旦用户纠正了错误,你如何删除类“帮助阻止”。我知道欧芹会删除文本,但周围的 div 有一些填充,一旦更正,这些填充就会保持可见......有什么建议吗?
    猜你喜欢
    • 2016-10-31
    • 1970-01-01
    • 2013-01-20
    • 2021-05-22
    • 2014-03-07
    • 1970-01-01
    • 2013-06-15
    • 2021-12-29
    • 1970-01-01
    相关资源
    最近更新 更多