2011-01-03 3 views
0

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

У меня есть страница, настроенная так, что рядом с элементом есть скрытая форма. Пользователь нажимает div, а мой скрипт захватывает html элемента и помещает его в var, показывает форму и выгружает 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// 
+0

Рассмотрите возможность использования '

' –

+0

Итак, вы перемещаете текст между элементом DIV и элементом TEXTAREA и наоборот. Как связано с этим значение кнопки радиосвязи? –

+0

Во всех других местах моей страницы текст/html элемента редактируется, поэтому он передается в TEXTAREA, поэтому его можно редактировать. Я пытаюсь заставить мою страницу использовать скрипт обработки формы для обработки радиокнопок, но по какой-то причине он не прослушивает форму переключателя. Сценарий обработки не выбирает, какая радиокнопка была проверена ... – Ofeargall

ответ

0

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

$(this).val($(this + "option:first").val()); 
+0

Вы имеете в виду '$ (this) .find ('option: first'). Val()'? –

+0

Я имею в виду то, что я написал, я вытащил его прямо из своего скрипта, который является функциональным;) –

+1

@Kirk Но 'this' является ссылкой на объект (объект SELECT, я предполагаю). Вы связываете 'this' с строкой, что означает, что' this' будет принудительно привязан к строкам к чему-то вроде '[object Object]'. Поэтому селектор внутри '$()' - это опция [object Object]: first', которая является недопустимой. –

Смежные вопросы