<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Table example page</title>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(function(){
$('table')
.click(function(event){
console.log(event.target);
if(
event.target.type!==null&&
event.target.type!=='text'&&// Если нажали не на input type='text'
event.target.type!=='checkbox'&&// Если нажали не на input type='checkbox'
event.target.tagName!=='a'// Если нажали не на ссылку
){
var
$tr=$(event.target).closest('tr'),
$checkbox=$tr.find('input[type="checkbox"]')[0];
if($checkbox.checked===true){// Если флаг на первом чекбоксе установлен в позицию "true"
$checkbox.checked=false;
$tr.removeClass('selects');
}
else{
$checkbox.checked=true;
$tr.addClass('selects');
}
}
});
});
</script>
</head>
<body>
<table>
<tr class="table_rows">
<td>
<input name="del[{$item->id}]" type="checkbox" id="del[{$item->id}]" value="1">
<input name="test" type="text" id="test" value="123" size="60">
</td>
<td>
текст
</td>
</tr>
<tr class="table_rows">
<td>
<input name="del[{$item->id}]" type="checkbox" id="del[{$item->id}]" value="1">
<input name="test" type="text" id="test" value="123" size="60">
</td>
<td>
текст
</td>
</tr>
</table>
</body>
</html>
Я заменил toggleClass(«selects»), так что проверьте правильно ли он себя ведет. + я jquery уже почти с год не пользовался и не использовал ее побрекушки с делегированием из последней версии, ибо нет желания ман читать, так что сами уже правьте в нужном направлении.
Ну и ничего хорошего в этом нет, ибо в ответах должны указывать, а не довать готовые решения…
Знание ответа в вашем случае подразумевает написание готового решения? :) Я jquery пользовался совсем недолго в прошлом году и у меня нет желания лезть в доки.
На простом js (к примеру для Firefox'а и без использования «захвата», хоть Firefox его и поддерживает, да и вообще все w3c-совместимые браузеры) это выглядело бы как проверка event.target'а (элемента, на котором возникло событие) при делигировании события «click» на таблице на имя тега («tagName», если не ошибаюсь). Если бы это оказался тег «tr», то я бы изменил статут чекбокса и поставил флаг, что «tr» найден и нужно дальше продолжать ловить ссылку, аль одностройное поле для ввода текста (ибо они выше находятся, а ловим мы на этапе всплытия). Ну и далее по этому же алгоритму. Все довольно просто. Переведите это на jquery и будет вам счастье.
Страницу-то и посредством ajax'а получить можно. Вы выше написали, что форму отправляете, так может попросту отправлять ее асинхронно и блокировать («disabled») контрол отправки по событию «submit»?
The third parameter sets whether the request is asynchronous. If TRUE, the execution of the Javascript function will continue while the response of the server has not yet arrived. This is the A in AJAX.
На js у меня решение и без того имеется, но хотелось бы переделать с использованием псевдо-классов css для оформления + иных удобств из js. Но вот единственной загвозкой является эта всплывающая подсказка :(
Я заменил toggleClass(«selects»), так что проверьте правильно ли он себя ведет. + я jquery уже почти с год не пользовался и не использовал ее побрекушки с делегированием из последней версии, ибо нет желания ман читать, так что сами уже правьте в нужном направлении.
Ну и ничего хорошего в этом нет, ибо в ответах должны указывать, а не довать готовые решения…