【问题标题】:jquery error placement in label标签中的jquery错误放置
【发布时间】:2016-01-22 13:45:12
【问题描述】:

我有一个从 sql db 构建问题的动态表单: 问题文本本身位于标签或图例中。在其下方出现选项或复选框或文本输入字段。 提交后,我使用 jquery 检查错误,但错误文本的位置在选项或复选框或文本字段之前或之后。 我只想要问题文本后的*。 我怎样才能得到它?

部分html表单代码如下:

<table border=0 style="width:99%">
    <tr><td colspan="3">
    <form id="myform" method="post" action="processform.asp" name="myform" novalidate="novalidate">
    <%
    for i = 0 To ubound(arrVragen, 2)
        vraagnr = arrVragen(0,i)
        vragenlijstnr = arrVragen(1,i)
        vraagdispnr = arrVragen(2,i)
        vraagtype = arrVragen(3,i)
        vraag = arrVragen(vraagNLEN,i)
        vraagMandatory = arrVragen(6,i)
        vraagConditional = arrVragen(7,i)
        vraagVolgorde = arrVragen(8,i)
        if vraagMandatory=0 then
            req="&nbsp"
        else
            req="required"
        end if
        if vraagConditional = 1 then
            'lookup SourceCondition en TargetCondition en LogicSelect in arrConditionalLogic
            lookuplogic vraagnr
            'display vraag
            depends="q"&source&logic&"a"&answerinput
'response.write(depends)
            response.write("<fieldset class='form-question' data-depends-on="&depends&">")
            response.write("<label>" & vraagdispnr & ". &nbsp" & vraag & "<br/></label>")
            response.write("<label class='error'></label>")
        else
            'display vraag
            response.write("<fieldset class='form-question'>")
            response.write("<legend>" & vraagdispnr & ". &nbsp" & vraag & "</legend>")
            response.write("<label class='error'></label>")
        end if
        'display mogelijke antwoorden
        add_answer vraagnr, vraagtype, req
        response.write("</fieldset>")
    next

jquery 片段:

$(document).ready(function() { 
        $("#errmessage").hide();
        $("#myform").onsubmit = function (f) {
            f.preventDefault();
            }; 
        $("#myform").validate({
            errorPlacement: function (error, element) {
                $("#errmessage").show();
            error.insertBefore(element);
                //error.appendTo($('label[div="' + $(element).attr('id') + '"]', form));
                //error.insertBefore(element.parent());
                 //error.appendTo('#error');
                //error.insertAfter($(element).parents('label').prev($('.form-question'))); 
            },
            ignore: ":hidden",
        });
    });

看起来像这样:

  1. 博士生会继续这个项目吗?

是的

没有

  1. 去年的进展是否按计划进行?

是的

不,项目进度落后

  1. 来年有计划吗?

是的

没有

  1. 预计来年会出现延迟吗?

是的

没有

  1. 关于本次促销的进展是否有补充说明?

所以我希望 * 作为问题文本后面的错误消息,而不是标准的是或否字段之前或之后。

【问题讨论】:

  • 我们可以看看你的代码吗?
  • 我自己发现:我在标签/图例标签之间放置了一个跨度,类 fielderr $("#myform").validate({ errorPlacement: function (error, element) { ignore: ": hidden"; $("#errmessage").show(); element.parents(".form-question").find(".fielderr").append (error);

标签: jquery errorplacement


【解决方案1】:

我自己发现的: 我使用类 fielderr 在标签/图例标签之间放置一个跨度,然后将其添加到 jquery 代码中:

$("#myform").validate({
        errorPlacement: function (error, element) {
        ignore: ":hidden";
        $("#errmessage").show();
        element.parents(".form-question").find(".fielderr").append(error);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多