Как принудительно проверить действительный элемент с помощью проверки jquery [duplicate]

Я думаю, что когда вы определяете String, вы определяете объект. Поэтому вам нужно использовать .equals(). Когда вы используете примитивные типы данных, вы используете ==, но с String (и любым объектом) вы должны использовать .equals().

120
задан Milad Rashidi 3 January 2018 в 08:45
поделиться

8 ответов

Эта библиотека, похоже, позволяет проверять отдельные элементы. Просто привяжите событие click к своей кнопке и попробуйте следующее:

$("#myform").validate().element("#i1");

Примеры здесь:

http://docs.jquery.com/Plugins/Validation/ Оценщик / элемент # элемент

145
ответ дан Irvin Dominin 16 August 2018 в 11:27
поделиться
  • 1
    Это проверяет всю форму ... для проверки только 1 поля, правильный способ: stackoverflow.com/a/12195091/114029 – Leniel Maccaferri 12 July 2013 в 16:50
  • 2
    По какой-то причине я не получаю текст пользовательской ошибки, когда я проверяю этот способ. Может быть, это связано с тем, что я запускаю диалог Durandal. Имеет массу проблем с этой структурой в указанном контексте. – P.Brian.Mackey 20 April 2017 в 18:39

Или можно просто использовать: $('#myElem').valid()

if ($('#myElem').valid()){
   // will also trigger unobtrusive validation only for this element if in place 
   // add your extra logic here to execute only when element is valid
}
92
ответ дан Anastasiosyal 16 August 2018 в 11:27
поделиться
  • 1
    validate() необходимо вызвать форму, прежде чем проверять ее с помощью этого метода. – GETah 17 August 2013 в 13:07
  • 2
    У меня такой запрос: if ($ ('# myElem'). val () == '2017-4-12') {выбор даты неправильный} else {действительный выбор} – srinivas gowda 12 April 2017 в 09:51

Я попробовал работать tnx @Anastasiosyal, я хочу поделиться им с этим потоком.

Я не уверен, как поля ввода не запускались, когда я опустошал поля. Но мне удалось вызвать каждое обязательное поле индивидуально, используя:

$(".setting-p input").bind("change", function () {
        //Seven.NetOps.validateSettings(Seven.NetOps.saveSettings);
        /*$.validator.unobtrusive.parse($('#saveForm'));*/
        $('#NodeZoomLevel').valid();
        $('#ZoomLevel').valid();
        $('#CenterLatitude').valid();
        $('#CenterLongitude').valid();
        $('#NodeIconSize').valid();
        $('#SaveDashboard').valid();
        $('#AutoRefresh').valid();
    });

вот мой взгляд

@using (Html.BeginForm("SaveSettings", "Settings", FormMethod.Post, new {id = "saveForm"}))
{
    <div id="sevenRightBody">
        <div id="mapMenuitemPanel" class="setingsPanelStyle" style="display: block;">
            <div class="defaultpanelTitleStyle">Map Settings</div>
            Customize the map view upon initial navigation to the map view page.
            <p class="setting-p">@Html.LabelFor(x => x.NodeZoomLevel)</p>
            <p class="setting-p">@Html.EditorFor(x => x.NodeZoomLevel) @Html.ValidationMessageFor(x => x.NodeZoomLevel)</p>
            <p class="setting-p">@Html.LabelFor(x => x.ZoomLevel)</p>
            <p class="setting-p">@Html.EditorFor(x => x.ZoomLevel) @Html.ValidationMessageFor(x => x.ZoomLevel)</p>
            <p class="setting-p">@Html.LabelFor(x => x.CenterLatitude)</p>
            <p class="setting-p">@Html.EditorFor(x => x.CenterLatitude) @Html.ValidationMessageFor(x => x.CenterLatitude)</p>
            <p class="setting-p">@Html.LabelFor(x => x.CenterLongitude)</p>
            <p class="setting-p">@Html.EditorFor(x => x.CenterLongitude) @Html.ValidationMessageFor(x => x.CenterLongitude)</p>
            <p class="setting-p">@Html.LabelFor(x => x.NodeIconSize)</p>
            <p class="setting-p">@Html.SliderSelectFor(x => x.NodeIconSize) @Html.ValidationMessageFor(x => x.NodeIconSize)</p>
        </div>

и мой Entity

   public class UserSetting : IEquatable<UserSetting>
    {
        [Required(ErrorMessage = "Missing Node Zoom Level.")]
        [Range(200, 10000000, ErrorMessage = "Node Zoom Level must be between {1} and {2}.")]
        [DefaultValue(100000)]
        [Display(Name = "Node Zoom Level")]
        public double NodeZoomLevel { get; set; }

        [Required(ErrorMessage = "Missing Zoom Level.")]
        [Range(200, 10000000, ErrorMessage = "Zoom Level must be between {1} and {2}.")]
        [DefaultValue(1000000)]
        [Display(Name = "Zoom Level")]
        public double ZoomLevel { get; set; }

        [Range(-90, 90, ErrorMessage = "Latitude degrees must be between {1} and {2}.")]
        [Required(ErrorMessage = "Missing Latitude.")]
        [DefaultValue(-200)]
        [Display(Name = "Latitude")]
        public double CenterLatitude { get; set; }

        [Range(-180, 180, ErrorMessage = "Longitude degrees must be between {1} and {2}.")]
        [Required(ErrorMessage = "Missing Longitude.")]
        [DefaultValue(-200)]
        [Display(Name = "Longitude")]
        public double CenterLongitude { get; set; }

        [Display(Name = "Save Dashboard")]
        public bool SaveDashboard { get; set; }
.....
}
0
ответ дан bherto39 16 August 2018 в 11:27
поделиться
  • 1
    Этот ответ предполагает среду .NET, когда вопрос явно касается проверки jQuery. – Kenogu Labz 5 August 2014 в 19:11

Как написано в документации , способ программной проверки формы программно - вызывать validator.form ()

var validator = $( "#myform" ).validate();
validator.form();
2
ответ дан Eva M 16 August 2018 в 11:27
поделиться

Существует недокументированный метод, начиная с версии 1.14

validator.checkForm()

Этот метод молча проверяет для возврата true / false. Он не вызывает сообщений об ошибках.

3
ответ дан KyleMit 16 August 2018 в 11:27
поделиться

Существует хороший способ, если вы используете validate() с параметрами в форме и хотите вручную подтвердить одно поле вашей формы:

var validationManager = $('.myForm').validate(myParameters);
...
validationManager.element($(this));

Документация: Validator.element ( )

0
ответ дан Tobi G. 16 August 2018 в 11:27
поделиться

В моем подобном случае у меня была своя логика проверки и я просто хотел использовать проверку jQuery для отображения сообщения. Это было то, что я сделал.

//1) Enable jQuery validation
var validator = $('#myForm').validate();

$('#myButton').click(function(){
  //my own validation logic here
  //.....
  //2) when validation failed, show the error message manually
  validator.showErrors({
    'myField': 'my custom error message'
  });
});

0
ответ дан user538220 16 August 2018 в 11:27
поделиться

Мой подход был следующим. Теперь я просто хотел, чтобы моя форма была проверена, когда был установлен один конкретный флажок / изменен:

$('#myForm input:checkbox[name=yourChkBxName]').click(
 function(e){
  $("#myForm").valid();
}
)
25
ответ дан Yoosaf Abdulla 16 August 2018 в 11:27
поделиться
  • 1
    Мой запрос, если ($ ('# someID) ===' 2017-4-12) {$ (& quot; # myform & quot;). Validate (). Element (& quot; # i1 & quot;). Valid ();} else { $ («myform»). validate (). element («# i1»). Недопустимый ();} правильный код – srinivas gowda 12 April 2017 в 09:57
Другие вопросы по тегам:

Похожие вопросы: