【问题标题】:how to use if rule in jquery如何在jquery中使用if规则
【发布时间】:2009-07-30 07:16:13
【问题描述】:

您好,我有一个简单的模式弹出窗口,其中有 3 个名称字段和 3 个彼此相邻的电子邮件字段。我是 jQuery 新手,谁能帮我为以下案例编写逻辑?

名字字段和电子邮件字段是必需的,因此我将类保留为必填字段,但其他两个姓名和电子邮件字段是可选的,但如果我在姓名字段中输入值,我必须在电子邮件字段中输入值.换句话说,如果名称字段不为空,则电子邮件字段不应为空。如果有人可以帮助我,请告诉我。谢谢。

从ajax获取数据的jQuery代码如下

function shareWithAFriend(itemId) {
        $.ajax({
            url: "shareWithAFriend.do?itemId="+itemId,
            type: "GET",
            success: function(html) {
                $("#tellInfoPop").html(html);
                $("#itemId").val(itemId);
                $("#emailFriend").validate({
                    errorClass: "formError",
                    errorContainer: "#referAFriendFormError",
                    errorLabelContainer: "#referAFriendFormError",
                    onfocusout: false,
                    wrapper: 'li',
                    messages: {
                        referName01: {
                            required: "<@spring.message "referAFriend.error.nameRequired"/>"
                        },
                        referEmail01: {
                            required: "<@spring.message "referAFriend.error.emailRequired"/>",
                            email: "<@spring.message "referAFriend.error.emailFormat"/>"
                        },
                        referEmail02: {
                            email: "<@spring.message "referAFriend.error.emailFormat"/>"
                        },
                        referEmail03: {
                            email: "<@spring.message "referAFriend.error.emailFormat"/>"
                        },
                        securityKey: {
                            required: "<@spring.message "referAFriend.error.securityRequired"/>"
                        }
                    },
                    groups: {
                        emailGroup: "referEmail01 referEmail02 referEmail03"
                    },

Html 代码是休闲的

<div class="leftCol">
        <label for="emailToName1" class="formLabel"><span class="required">*</span>Name:</label>
      <div><input type="text" id="emailToName1" name="referName01" value="${referAFriendBean.referName01!}" class="required" tabindex="1" /></div>
      <div class="pad5Top"><input type="text" id="emailToName2" name="referName02" value="${referAFriendBean.referName02!}" tabindex="3" /></div>
      <div class="pad5Top"><input type="text" id="emailToName3" name="referName03" value="${referAFriendBean.referName03!}" tabindex="5" /></div>
    </div>

    <div class="rightCol">
        <label for="emailToAddress1" class="formLabel"><span class="required">*</span>Email address:</label>
      <div><input type="text" id="emailToAddress1" name="referEmail01" value="${referAFriendBean.referEmail01!}" class="required email" tabindex="2" /></div>
      <div class="pad5Top"><input type="text" id="emailToAddress2" name="referEmail02" class="email" tabindex="4" value="${referAFriendBean.referEmail02!}" /></div>
      <div class="pad5Top"><input type="text" id="emailToAddress3" name="referEmail03" class="email" tabindex="6" value="${referAFriendBean.referEmail03!}" /></div>
    </div>
  </div>

【问题讨论】:

    标签: jquery css-selectors conditional-statements


    【解决方案1】:

    我认为您可以为可选名称元素添加一个事件处理程序,该元素将动态添加或删除地址所需的类。

    我不知道我是否在这里选择了正确的 ID,但你应该明白:

    $('#emailToName2').keyup(function () {
        if ($(this).val()) {
            $('#emailToAddress2').addClass('required');
        } else {
            $('#emailToAddress2').removeClass('required');
        }
    });
    

    甚至是简短的版本,但如果您是 jQuery 新手,则可读性可能会降低

    $('#emailToName2').keyup(function () {
        $('#emailToAddress2').toggleClass('required', $(this).val());
    });
    

    【讨论】:

    • 嘿 rayell 我如何给你一个复选标记,你能告诉我是否有任何方法可以在规则中编写相同的代码:使用 key up 功能。
    • 您应该会在此答案投票下方看到复选标记。只需单击它。我不确定如何重写此代码以使其与 jQuery 验证规则一起使用。问题在于,当一个字段验证不依赖于其他字段值时,这些规则可以很好地工作。事实上,我的解决方案没有向验证添加任何内容,它只是在 keyup 事件的字段中添加或删除一个额外的验证规则。很抱歉,但我没有办法让它变得更简单。
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2022-01-13
    • 2019-04-16
    • 2010-10-11
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多