: radio и: проверил, не передаётся ли мне - PullRequest
0 голосов
/ 04 января 2011

У меня есть несколько форм на моей странице, которые используют одну и ту же функцию для их обработки.Все работало просто замечательно, пока я не захотел добавить форму переключателя для включения / отключения записи в базе данных.

Я настроил страницу так, чтобы рядом с элементом была скрытая форма.Пользователь щелкает элемент div, и мой скрипт захватывает html элемента и помещает его в переменную, показывает форму, выводит html (var) в текстовую область и скрывает элемент.Внесите некоторые изменения, нажмите «Отправить», форма отправляет, скрывает и повторно показывает элемент с новым HTML (стиль Facebook).Нет проблем.

Когда я пишу код для захвата переключателя, который «проверен», он работает нормально.Но если я переключаюсь на другую кнопку-переключатель, форма не захватывает новое значение.Что случилось?

if (field == "disabled") {
            var txt = $('#disabled input[name="product_disabled"]:radio').val();
        } else {
            var txt = $(this).html();
        };

Это захватывает значение, без проблем ...

Но, в моем обработчике форм, это просто берет вышеуказанную информацию, а не новую информацию из формы.

var newtxt = $('#disabled input[name="product_disabled"]:radio').val();

Очень странно ...

Вот полный jQuery

//Begin editing section - click handler on text shows the form//
$('[class^=edit_]').click(function(){
    var element = $(this).attr('class');
    var field = element.split('_')[1];
    if (field == "disabled") {
            var txt = approval;
        } else {
            var txt = $(this).html();
        };
    //var txt = $(this).html();
    //$('[class='+element+']').hide();
    $(this).hide();
    $('[id='+field+']').show();
    $('[class=product_'+field+']').val(txt);
    $('[class=product_'+field+']').focus();             
});
//Process the edit forms//
$('form').submit(function(e){
    e.preventDefault();
    alert($(this).html());
    var element = $(this).attr('id');
    var newtxt = $(this + "input[name='product_disabled']:radio").val(); //$('[class=product_'+element+']').val();
    var product = pid;
    var productImage = imageUrl;
    var rb = $('#disabled input[name="product_disabled"]:radio').val();

    $.getJSON("cfc/editProduct.cfc?method=updateText&returnformat=json", 
                {column:element, id:product, updateText:newtxt, image:productImage },
                function(response) {
                    //Handle the result
                    if(response.MESSAGE == "success") {
                        $('form').hide();
                        $('[class=edit_'+element+']').show();
                        $('[class=edit_'+element+']').html(newtxt);
                    } else {
                        alert(response.MESSAGE);
                    }
                });
});
//End editing section//

1 Ответ

0 голосов
/ 04 января 2011

У меня была похожая проблема, когда первый параметр был пустым значением, поэтому я использовал это (хотя это было для выбора входа)

$(this).val($(this + "option:first").val());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...