繁体   English   中英

如何验证两个选择输入是否相等

[英]How to validate two select inputs for equality

我有两个带有值的选择输入,我正在尝试进行验证。

如果第二个选择的值等于第一个选择的值,则应弹出一条消息以更改该值。

我尝试使用$.validator但仍然无法正常工作。

$('#SubstituteUserGid').change(function () {
    $('#mainForm').validate({
        rules: {
            SubstituteUserGid: { notEqual: userName }
        }
    });
}); 
jQuery.validator.addMethod("notEqual", function (value, element, param) {
    return this.optional(element) || value != param;
}, "Please specify a different (non-default) value");

这是HTML

<select asp-for="UserGid" data-val-required="Моля изберете служител"
        placeholder="Моля изберете служител" class="form-control" data-val="true">
    @foreach (var user in Model.AllActiveUsers)
    {
    <option value="@user.Gid" data-balance="@user.Balance">@user.Name</option>
    }
</select>


<select asp-for="SubstituteUserGid" class="form-control" data-val="true">
    <option value="">-- Без заместващ --</option>
    @foreach (var user in Model.AllActiveUsers)
    {
    <option value="@user.Gid">@user.Name</option>
    }
</select>

最好使用Remote属性,这将极大地满足您的目的。

说出您的模型类,如下所示:

public class Foo
{
    public string UserGid {get; set;}

    [Remote(action: "IsUserGuidEquals", controller: "Validation",AdditionalFields = "UserGid", ErrorMessage = "UserId are equals! Please select different one!")]
    public string SubstituteUserGid {get; set;}
}

然后在控制器中的IsUserGuidEquals方法中,如下所示:

public class ValidationController : Controller
{
    public JsonResult IsUserGuidEquals(string substituteUserGid, string userGid)
    {
        return Json(substituteUserGid != userGid,JsonRequestBehavior.AllowGet);
    }
 }

您的代码运行正常,添加与activeuser类似的类,然后重试,

<select asp-for="UserGid" data-val-required="Моля изберете служител"
        placeholder="Моля изберете служител" class="form-control activeuser" data-val="true">
    @foreach (var user in Model.AllActiveUsers)
    {
    <option value="@user.Gid" data-balance="@user.Balance">@user.Name</option>
    }
</select>


<select asp-for="SubstituteUserGid" class="form-control activeuser" data-val="true">
    <option value="">-- Без заместващ --</option>
    @foreach (var user in Model.AllActiveUsers)
    {
    <option value="@user.Gid">@user.Name</option>
    }
</select>


$('#SubstituteUserGid').change(function () {
    $('.activeuser').validate({
        rules: {
            SubstituteUserGid: { notEqual: userName }
        }
    });
}); 
jQuery.validator.addMethod("notEqual", function (value, element, param) {
    return this.optional(element) || value != param;
}, "Please specify a different (non-default) value");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM