изменить значение динамического флажка, сгенерированного php, используя jquery - PullRequest
0 голосов
/ 26 июня 2018

Значение флажка было установлено динамически через php

<ul>
    <li><input type="checkbox" name="menu[]" value="1">Politics         
        <ul>
            <li><input type="checkbox" name="submenu[1][1]" value="2">International</li>
            <li><input type="checkbox" name="submenu[1][2]" value="2">National</li>
        </ul>
    </li>
    <li><input type="checkbox" name="menu[]" value="2">Views</li>
    <li><input type="checkbox" name="menu[]" value="3">Sport            
        <ul>
            <li><input type="checkbox" name="submenu[3][1]" value="2">Volleyball</li>
            <li><input type="checkbox" name="submenu[3][2]" value="2">Cricket</li>
        </ul>
    </li>
</ul>

Теперь, можно ли удалить значение флажка с помощью jquery?Я хочу удалить значение только menu[], которое имеет submenu[][].Например, я устанавливаю эти menu[] флажки только для чтения следующим образом.

$('li:has(> ul)').find('[name="menu[]"]').click(false);

Теперь я хочу добавить этот трюк, но он не работает

$('li:has(> ul)').find('[name="menu[]"]').val('');

  // Here value is inserted using jquery
$('input[name="project"]').val("Good Fish");

  // But this is not working
$('li:has(> ul)').find('[name="menu[]"]').val('');

// This is working
$('li:has(> ul)').find('[name="menu[]"]').click(false);



$('[name="menu[]"] + ul input').click(function(){
		$(this).closest("ul").prev("input").prop("checked", ($(this).closest("ul").find("input:checked").length > 0));
	});
		$(document).on('submit','#form',function(e){
			e.preventDefault();
		if($("[name='menu[]']:checked").length == 0){
			alert('Missing Menu');
			return false;
		}
		else {
      alert('Success')
  }
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="form">
<ul>
  <li><input type="checkbox" name="menu[]" value="1">Politics
    <ul>
      <li><input type="checkbox" name="submenu[1][1]" value="2">International</li>
      <li><input type="checkbox" name="submenu[1][2]" value="2">National</li>
    </ul>
  </li>
  <li><input type="checkbox" name="menu[]" value="2">Views</li>
  <li><input type="checkbox" name="menu[]" value="3">Sport
    <ul>
      <li><input type="checkbox" name="submenu[3][1]" value="2">Volleyball</li>
      <li><input type="checkbox" name="submenu[3][2]" value="2">Cricket</li>
    </ul>
  </li>
</ul>
<input type="text" name="project"><br/>

<input type="submit" value="submit">
</form>

1 Ответ

0 голосов
/ 26 июня 2018

Это будет работать

$('li:has(> ul)').find('[name*="menu"]').val('');

DEMO: https://codepen.io/creativedev/pen/zaJreN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...