HTML5 Validators, проходящие через вкладки в форме [duplicate]

Вы можете использовать json_decode () для преобразования строки json в объект / массив PHP.

Например.

Вход:

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

Выход:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

Несколько точек для запоминания:

  • json_decode требует, чтобы строка была действительной json, иначе она вернется NULL.
  • В случае отказа декодирования json_last_error() можно использовать для определения точного характера ошибки.
  • Сделать убедитесь, что вы перешли в utf8 контент, или json_decode может выйти из строя и просто вернуть значение NULL.

3
задан South Coast Web 26 April 2013 в 13:34
поделиться

3 ответа

После немного большего количества игр я придумал рабочий ответ.

if(error == 0){ 
            $(this).focus();
            var tab = $(this).closest('.tab-pane').attr('id');
            $('#myTab a[href="#' + tab + '"]').tab('show');
}

Я просто заменил лишние 2 строки выше на мой код выше, и теперь он автоматически показывает правильную вкладку. То, что есть, находит ближайший идентификатор к требуемому полю, используя $ (this) .closest ('. Tab-pane'). Attr ('id');

Используя код в бутстрапе, я просто применяю .tab ('show') на эту вкладку.

4
ответ дан South Coast Web 21 August 2018 в 23:11
поделиться

Я нашел простейшее решение. Это может помочь;)

$('#productbutton').click(function () {
   $(':required:invalid', '#product_form').each(function () {
      var id = $('.tab-pane').find(':required:invalid').closest('.tab-pane').attr('id');

      $('.nav a[href="#' + id + '"]').tab('show');
   });
});
2
ответ дан Nizwer 21 August 2018 в 23:11
поделиться

У меня была та же проблема, и я решаю ее следующим образом:

<script>
$('#submitButton').click(function () {
    $('input:invalid').each(function () {
        // Find the tab-pane that this element is inside, and get the id
        var $closest = $(this).closest('.tab-pane');
        var id = $closest.attr('id');

        // Find the link that corresponds to the pane and have it show
        $('.nav a[href="#' + id + '"]').tab('show');

        // Only want to do it once
        return false;
    });
});
</script>

Когда вы нажимаете кнопку отправки (вам нужно ID), она ищет недопустимые поля ввода, f2] id и показать его.

Надеюсь, вы поможете!

6
ответ дан Paco Orozco 21 August 2018 в 23:11
поделиться
  • 1
    Работал как чары. Проблема только в том, что всплывающее окно HTML5 не отображается в первый раз после изменения вкладки (или оно слишком быстро исчезает). Но это все равно лучше, чем ничего не делать. Спасибо! – Lightningsoul 22 March 2017 в 14:34
Другие вопросы по тегам:

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