Насправді у мене проблема з формою в кожному рядку таблиці з javascript (насправді jquery):
як сказав Lothre1, "деякі браузери в процесі візуалізації закриють тег форми відразу після оголошення, залишаючи входи поза елементом"
що робить мої поля введення ВНЕ форми, тому я не можу отримати доступ до дочірніх форм моєї форми через DOM за допомогою JAVASCRIPT ..
як правило, такий код JQUERY не буде працювати:
$('#id_form :input').each(function(){/*action*/});
// this is supposed to select all inputS
// within the form that has an id ='id_form'
АЛЕ наведений вище приклад не працює з відображеним HTML:
<table>
<form id="id_form"></form>
<tr id="tr_id">
<td><input type="text"/></td>
<td><input type="submit"/></td>
</tr>
</table>
Я все ще шукаю чистого рішення (хоча використання параметра TR 'id' для проходження DOM вирішить цю конкретну проблему)
брудним рішенням буде (для jquery):
$('#tr_id :input').each(function(){/*action*/});
// this will select all the inputS
// fields within the TR with the id='tr_id'
вищезгаданий приклад буде працювати, але насправді він не "чистий", оскільки посилається на TR замість ФОРМИ, і для цього потрібен AJAX ...
EDIT: повний процес з jquery / ajax буде:
//init data string
// the dummy init value (1=1)is just here
// to avoid dealing with trailing &
// and should not be implemented
// (though it works)
var data_str = '1=1';
// for each input in the TR
$('#tr_id :input').each(function(){
//retrieve field name and value from the DOM
var field = $(this).attr('name');
var value = $(this).val();
//iterate the string to pass the datas
// so in the end it will render s/g like
// "1=1&field1_name=value1&field2_name=value2"...
data_str += '&' + field + '=' + value;
});
//Sendind fields datawith ajax
// to be treated
$.ajax({
type:"POST",
url: "target_for_the_form_treatment",
data:data_string,
success:function(msg){
/*actions on success of the request*/
});
});
таким чином, "target_for_the_form_treatment" повинен отримувати дані POST так, ніби йому була надіслана форма (окрім повідомлення [1] = 1, але для реалізації цього рішення я б рекомендував мати справу з кінцевим '&' data_str) .
все одно мені це рішення не подобається, але я змушений використовувати структуру TABLE через плагін jQuery dataTables ...