2017-01-16 2 views
0

Мне нужна ваша помощь. Я ищу решение: Существует форма с несколькими флажками, но только 4 из них важны. Здесь HTML-код из этого 4:Нажав на box1 измените значение из box2

<input name="opt[pool]" id="opt_pool" type="checkbox" class="searchval" value="1" onclick="submit_search()">Pool 
<input name="opt[ppool]" id="opt_ppool" type="checkbox" class="searchval" value="1" onclick="submit_search()">PPool 

<input name="opt[internet]" id="opt_internet" type="checkbox" class="searchval" value="1" onclick="submit_search()">Internet 
<input name="opt[internetw]" id="opt_internetw" type="checkbox" class="searchval" value="1" onclick="submit_search()">InternetW 

Вот код JQuery:

function build_search(skip){ 
    var sparam = ''; 
    var fields = {}; 
    $('.searchval').each(function(index){   
     if($(this).attr('name')==skip) {} 
     else if($(this).attr('type')=='checkbox'||$(this).attr('type')=='radio'){ 
      if($(this).prop("checked")){ 
       sparam+=$(this).attr('name')+"="+$(this).attr('value')+"&"; 
       fields[$(this).attr('name')] = $(this).attr('value'); 
      } 
     } 
     else if($(this).val()!=undefined&&$(this).val()!=''){ 
      sparam+=$(this).attr('name')+"="+$(this).val()+"&"; 
      fields[$(this).attr('name')] = $(this).val(); 
     } 
    }); 
} 

Теперь я хотел бы вмешаться - при нажатии на бассейне, это проверяется с Валом = 1 и ppool бесконтрольно с Val = 0. И наоборот, когда клик на ppool htis проверен с помощью val = 1 и пул не установлен с val = 0. Это работает с моим кодом:

var boxesP = $('#opt_pool,#opt_ppool').click(function(){ 
    boxesP.not(this).prop('checked', false); 
    $("#opt_pool").val($("#opt_pool")[0].checked ? "0" : "1"); 
    $("#opt_ppool").val($("#opt_ppool")[0].checked ? "0" : "1"); 
}); 

Но проблема в том, когда я нажимаю на другие флажки, проверенный бассейн с Валом = 1, остается проверяются, но вал = 0. Где моя ошибка? Благодарю.

+0

Использование опоры. $ ("# opt_pool"). prop ('checked', $ ("# opt_pool") [0] .checked? false: true); – user2330678

+0

Btw избегать классов использования идентификаторов. – user2330678

+0

@ user2330678 Или просто '$ (" # opt_pool "). Prop ('checked',! $ (" # Opt_pool ") [0] .checked);' –

ответ

0

Я заметил, что у вас есть действующая функция onClick. Будет ли что-то вроде этой работы для вас?

<input name="opt[pool]" id="opt_pool" type="checkbox" class="searchval" value="0" onclick="submit_search(this)">Pool 
<input name="opt[ppool]" id="opt_ppool" type="checkbox" class="searchval" value="0" onclick="submit_search(this)">PPool 
submit_search = function(e){ 
     if($(e).attr('checked') == 'checked'){ 
      $('.searchval').attr('checked',null); 
      $('.searchval').val(0); 
      $(e).attr('checked','checked'); 
      $(e).val(1); 
     }else{ 
      $(e).val(0); 
     } 
    } 
+0

Нет, потому что там не отключено ppool, когда я нажимаю пул – Web28

+0

Я хотел бы более точно объяснить, что я хочу сделать: если щелкнуть пул, пул будет cheked. Когда я нажимаю на Пул снова, пул должен быть снят. Затем y щелкните ppool, и если пул проверен, он должен быть снят. И отмените, если ppool ist проверен, и я нажму кнопку «Пул», я хочу, чтобы пул не был снят. Надеюсь, я не перепутаю с моим плохим английским;) – Web28

+0

Но также важно, когда один флажок проверен val = 1, и если непроверено изменение val = 0 – Web28

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