Javascript Hide / Unhide FileUpload при установленном флажке - PullRequest
0 голосов
/ 14 августа 2011

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

<script type="text/javascript">
function checkBox() {
    var changeimage=document.forms["myform"]["changeimage"].checked
    if (changeimage) {
        document.forms["myform"]["picupload"].style.display='';
    } else {
        document.forms["myform"]["picupload"].style.display='none';
    }   
}
</script>
...
<input type="checkbox" name="chnageimage" id="changeimage" onclick"checkBox();" />
  <label for="changeimage"></label>
  <br />
  <label for="picupload"></label>
  Picture
  <input type="file" name="picupload" id="picupload" style="display: none;"/>
  <br />
  <img src="userpics/<?php echo $row['Photo'] ?>" /></p>

Ответы [ 3 ]

2 голосов
/ 14 августа 2011

Это гораздо лучше сделать.

Измените свой HTML-флажок следующим образом.Передайте this объект по нажатому HTMLElement событию onclick

<input type="checkbox" name="chnageimage" id="changeimage" onclick="checkClick(this);" />

Теперь вы можете изменить свой javascript следующим образом.

function checkClick(objCheckBox) {
    document.getElementById("picupload").style.display = objCheckBox.checked ? 'block' : 'none';
}

Нет действительного значения для .style.display принимает значение ''.В этом примере должно быть block.

0 голосов
/ 14 августа 2011

Вы использовали onclick "checkBox ();" вместо onclick = "checkBox ();" и нет элемента формы в HTML.

 <script type="text/javascript">
        function checkBox() {
                             var changeimage=document.forms["myform"]["changeimage"].checked;
                             if (changeimage) {
                                               document.forms["myform"]["picupload"].style.display='';
                                              } else {
                                               document.forms["myform"]["picupload"].style.display='none';
                                              }   
                            }
 </script>
      <form name="myform">
      <input type="checkbox" name="chnageimage" id="changeimage" onclick="checkBox();" />
      <label for="changeimage"></label>
      <br />
      <label for="picupload"></label>
      Picture
      <input type="file" name="picupload" id="picupload" style="display: ;"/>
       <br />
      </form>
0 голосов
/ 14 августа 2011

У вас есть опечатка на onclick"checkBox();" должна быть onclick="checkBox();"

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