Управлять несколькими флажками по идентификатору с помощью ненавязчивого сценария Java? - PullRequest
0 голосов
/ 27 апреля 2010

Я хочу иметь возможность установить несколько флажков onmouseover, но вместо применения onmouseover к каждому отдельному блоку я пытался разобраться, как это сделать, манипулируя флажками вместо идентификатора, хотя Я не уверен, куда идти с использованием getElementById ,. Так что вместо того, что вы видите ниже.

<html>
<head>
<script>
     var Toggle = true;

  var Highlight=false;
  function handleKeyPress(evt) {
     var nbr;
     if (window.Event) nbr = evt.which;
     else nbr = event.keyCode;
     if(nbr==16)Highlight=true;
     return true;
  }

  function MakeFalse(){Highlight=false;}

  function SelectIt(X){
      if(X.checked && Toggle)X.checked=false;
      else X.checked=true;
  }
function ChangeText()
{
    var test1 = document.getElementById("1");
    test1.innerHTML = "onmouseover=SelectIt(this)"
}

</script>
</head>
<body>
<form name="A">
<input type="checkbox" name="C1" onmouseover="SelectIt(this)" id="1"><br>
<input type="checkbox" name="C2" onmouseover="SelectIt(this)" id="2"><br>
<input type="checkbox" name="C3" onmouseover="SelectIt(this)" id="3"><br>
<input type="checkbox" name="C4" onmouseover="SelectIt(this)" checked="" disabled="disabled" id="4"><br>
<input type="checkbox" name="C5" onmouseover="SelectIt(this)" id="5"><br>
<input type="checkbox" name="C6" onmouseover="SelectIt(this)" id="6"><br>
<input type="checkbox" name="C7" onmouseover="SelectIt(this)" id="7"><br>
<input type="checkbox" name="C8" onmouseover="SelectIt(this)" id="8"><br>
</form>

</body>
</html>

Я хочу иметь возможность применить эффект onmousover к массиву флажков, подобных этому

<form name="A">
<input type="checkbox" name="C1" id="1"><br>
<input type="checkbox" name="C2" id="2"><br>
<input type="checkbox" name="C3" id="3"><br>
<input type="checkbox" name="C4" checked="" disabled="disabled" id="4"><br>
<input type="checkbox" name="C5" id="5"><br>
<input type="checkbox" name="C6" id="6"><br>
<input type="checkbox" name="C7" id="7"><br>
<input type="checkbox" name="C8" id="8"><br>
</form>

Попробовав функцию поиска на stackoverflow.com и осмотревшись в Google, я так и не смог найти решение, которое имеет для меня смысл, хотя я все еще в процессе обучения, поэтому боюсь, что возможно, пытаюсь сделать что-то слишком продвинутое для моего уровня знаний.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2010

Я бы посоветовал захватить jQuery для любой клиентской стороны. Например, ваш вопрос может быть очень легко смоделирован в jQuery и с чрезвычайно меньшим количеством кода:

$(':checkbox').mouseover(function()
{
    this.checked = !this.checked;
});

Это захватывает все флажки на вашей странице, присоединяет к ним событие наведения мыши, а затем, когда наведение мыши происходит, просто переключает состояние атрибута selected на элемент.

0 голосов
/ 27 апреля 2010

Вам не нужно изменять событие ввода, чтобы сделать ненавязчивый JavaScript.Агенты, которые не могут выполнять JavaScript, будут просто игнорировать атрибут onmouseover.И так как я надеюсь, что вы создаете флажки на стороне сервера в цикле, нет необходимости бояться копирования.

...