<img src="<?php echo $this->webroot; ?>img/yes.png" onclick="save(this);" id="btnyes" value="Yes"> &nbsp; 
     <img src="<?php echo $this->webroot; ?>img/no.png" id="btnno" onclick="save(this);" value="No">
       <img id="yes" style="display:none" src="<?php echo $this->webroot; ?>img/green.png"  alt="">
        <img id="no" style="display:none" src="<?php echo $this->webroot; ?>img/green.png"  alt="">

Когда я нажимаю на кнопку «да», она должна измениться на зеленую галочку, а когда я нажимаю на кнопку «нет», она должна измениться на красную галочку

<script type="text/javascript">
function save(obj) {

  if(obj.value='yes'){
    document.getElementById('btnyes').style.display = 'none';
    document.getElementById('btnno').style.display = 'none';
    document.getElementById('yes').style.display = 'block';
    document.getElementById('no').style.display = 'none';
  } 
  else if {
    document.getElementById('btnyes').style.display = 'none';
    document.getElementById('btnno').style.display = 'none';
    document.getElementById('yes').style.display = 'none';
    document.getElementById('no').style.display = 'block';
  }
}

</script>

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

2
user 18 Дек 2015 в 08:56

4 ответа

Лучший ответ

В вашем файле есть пара ошибок:

Это ваш html:

 <img onclick="save(this);" id="btnyes" value="Yes">

Это ваш JS:

if(obj.value='yes'){
document.getElementById('btnyes').style.display = 'none';
document.getElementById('btnno').style.display = 'none';
document.getElementById('yes').style.display = 'block';
document.getElementById('no').style.display = 'none';
} 

не равно . Кроме того, if(obj.value='yes') не проверяет значение obj.value.

Этот фрагмент ниже неправильный. Вам нужно либо указать else if("condition"), либо изменить его на else.

else if{
document.getElementById('btnyes').style.display = 'none';
document.getElementById('btnno').style.display = 'none';
document.getElementById('yes').style.display = 'none';
document.getElementById('no').style.display = 'block';
}
1
Nicholas F 18 Дек 2015 в 06:19

Во-первых, в вашем JavaScript-коде есть синтаксическая ошибка рядом с условием else if.

Во-вторых, вы не можете использовать атрибут value для изображений.

В-третьих, вы сравниваете, используя «=», тогда как «==»

Наконец, вы сравниваете «да» с «да». Так что, учитывая регистр, сравнение не удается.

Я сделал общие изменения в вашем коде. Пожалуйста, попробуйте и посмотрите, если вы получаете правильные оповещения. И тогда вы можете добавить свой код в него, как вы хотите.

<script language="javascript">

function save(obj){


if(obj.getAttribute("value") =='Yes'){
 alert("I am in Yes");

 } 
 else {

   alert("I am in No");

     }
}

</script>

Надеюсь, это поможет!

0
Aman Sura 18 Дек 2015 в 06:45

У вас есть много вещей, чтобы исправить.

Во-первых, это obj.value == 'yes' не obj.value='yes'

Во-вторых, вы должны использовать obj.getAttribute('value') вместо obj.value.

В-третьих, в своем коде вы используете <?php echo $this->webroot; ?>img/green.png два раза. Но, похоже, вам следует использовать <?php echo $this->webroot; ?>img/red.png во второй раз.

Весь код выглядит так;

HTML

<img src="<?php echo $this->webroot; ?>img/yes.png" onclick="save(this);" id="btnyes" value="yes"/> &nbsp; 
<img src="<?php echo $this->webroot; ?>img/no.png" onclick="save(this);" id="btnno" value="no"/> 
<img id="yes" style="display:none" src="<?php echo $this->webroot; ?>img/green.png"  alt="">
<img id="no" style="display:none" src="<?php echo $this->webroot; ?>img/red.png"  alt="">

JavaScript

function save(obj){
  if(obj.getAttribute('value')=='yes'){
    document.getElementById('btnyes').style.display = 'none';
    document.getElementById('btnno').style.display = 'none';
    document.getElementById('no').style.display = 'none';
    document.getElementById('yes').style.display = 'block';
  } else{
    document.getElementById('btnyes').style.display = 'none';
    document.getElementById('btnno').style.display = 'none';
    document.getElementById('yes').style.display = 'none';
    document.getElementById('no').style.display = 'block';
  }
}

Вот рабочая демонстрация https://jsfiddle.net/sa215dv0/1/

Надеюсь это поможет

0
blasteralfred Ψ 18 Дек 2015 в 06:48

Только входные элементы имеют атрибут value. Но вы используете значение внутри изображения, чтобы вы могли использовать:

if(obj.getAttribute('value')=='yes'){//compare with == not with =

Рекомендация:

Используйте атрибут html5 data- *. Например, data-value="yes", а затем используйте getAttribute('data-value').


демо

0
Bhojendra Rauniyar 18 Дек 2015 в 06:10