Jquery Проверить, какое изображение кликнуло - PullRequest
0 голосов
/ 17 марта 2011

У меня есть форма с 5 значками, и я хочу проверить, какая из них нажата.Я подумал добавить скрытое текстовое поле и написать правило, которое проверяет его значение.Это работает при отправке формы, но мне нужно очистить сообщение об ошибке при нажатии на правильное изображение.На данный момент проверка не запускается, когда текстовое значение изменяется с помощью javascript.Есть ли лучший способ сделать это?

<form name="frmExperiment" id="frmExperiment" action="" method="post">
<img src="btn1.png" width="75" height="75" alt="continue" title="continue" onclick="frmExperiment.txtIconG.value=1" />
<img src="btn2.png" width="75" height="74" alt="information" title="information" onclick="frmExperiment.txtIconG.value=2" />
<img src="btn3.png" width="75" height="82" alt="refresh" title="refresh" onclick="frmExperiment.txtIconG.value=3" />
<img src="btn4.png" width="75" height="75" alt="home" title="home" onclick="frmExperiment.txtIconG.value=4" />
<img src="btn6.png" width="75" height="77" alt="stop" title="stop" onclick="frmExperiment.txtIconG.value=5" />
<input type="text" name="txtIconG" id="txtIconG" />
</form>

и

$.validator.addMethod("iconmatch", function (value, element) {
return value==1;
},
"That isn't the continue button"
);

Ответы [ 3 ]

0 голосов
/ 17 марта 2011

Дайте идентификатор каждому img и нажмите на каждый идентификатор, который вы делаете, что хотите. Я надеюсь, что id работы img shud другой мудрый человек ставит span или div для каждого img и присваивает им id

$('#target').click(function() {
  alert('Handler for .click() called.');
});
0 голосов
/ 18 марта 2011

Сортировка.Проблема заключалась в том, что изменение значения с помощью js onclick не запускает проверку.Итак, я удалил клики и в jQuery добавил:

$('#frmExperiment img').click(function(){
    $('#txtIconG').val($(this).attr('src'));
    $('#txtIconG').keyup();
});

и в пользовательском правиле:

$.validator.addMethod("iconmatch", function (value, element) {
    return value=='btn1.png';
},
    "That isn't the continue button"
);

Итак, запуск события keyup на входе сделал свою работу.Возможно, есть более элегантный способ сделать это, но он работает ...

0 голосов
/ 17 марта 2011
$("img").bind("click", function(){
  var whichImg = $(this).attr("title");
  if( whichImg == "continue" ) {
   // do stuff or submit the form
  } else {
     var txt = "That isnt the continue button! You've clicked the "+ whichImg + " button!";
     $("#txtIconG").val( txt );
  }
  return false;
});
...