我的 html 代码为
   <dl>
<dd>
<input type="file" name="file" onclick="chanse();" onchange="upload();" class="shangchuan" id="file" value="" /> 
<a href="javascript:" id="gj">上传头像</a>
</dd>
</dl>
javascript 代码里面有两个方法function upload() {
   ...
}function chanse() {
   ...
}
功能是当我点击"上传图片"  javascript中的两个方法都运行了并且执行成功了;
   我的问题是:1:为什么我点击"上传图片"时  input 标签中的方法为什么会被执行;而javascript中的其他方法为什么不会执行
     2:在这里 href="javascript:" 有什么作用,也就是说他是用来干什么的,
    3:什么情况下 我们可以这样在 a标签中这样使用 href="javascript:" 网上的东西都看过;看完以后就是有这样的几个疑惑;最高也就100分 ,一个疑惑30分href="javascript:" 

解决方案 »

  1.   

    1,“为什么我点击"上传图片"时  input 标签中的方法为什么会被执行”从上面代码没看出来,不过给gj 邦定事件的方法有很多种,应该是后面邦上事件的
     href="javascript:" 这本身就是一条空语句2,href="javascript:" 主要作用让它有超链接样式的作用 ,看起来像个按钮,有操作不是文本
    3,用A标签当按钮时,没有超链接,一般设置onclick 事件
      

  2.   

    function chanse() {
    document.getElementById('gj').style.background = "url('<eaglelink:contextpath/>/html/images/jikjk.png') no-repeat";
    document.getElementById("LOGO1").style.display = "inline";
    }
    这是gj的唯一绑定  但这里只是一个背景的设置
    其他任何地方都没有gj的绑定了,
      

  3.   

    javascript:是javascript伪协议 指运行一段js代码 你那里的a标签应该是没什么可执行的
    你吧完整的代码发上来吧  逛这里看不出来为什么执行了那两个方法
      

  4.   

    <dl>
    <dd>
    <input type="file" style="font-size: 19px; background: none; border: none; margin-left: -50px; margin-top: 3px; position: absolute; z-index: 12; filter: alpha(opacity = 0)"
    name="file" onclick="chanse();" onchange="upload();" class="shangchuan" id="file" value="" /> 
    <a href="javascript:" id="gj">上传头像</a>
    </dd>
    </dl>
    function upload() {
    var smlurl = document.getElementById("preview").src;
    $.ajaxFileUpload({
    url : "<eaglelink:contextpath/>/html/user/userAction!imgadd.action",
    secureuri : false,
    fileElementId : 'file',
    dataType : 'text/html',
    success : function(data) {
    document.getElementById("LOGO1").style.display = "inline";
    document.getElementById("imgurl").value = data;
    var div1 = document.getElementById('span1');//小图片预览
    div1.innerHTML = "";
    var div2 = document.getElementById('span2');
    div2.innerHTML = "";
    var imgobj1 = document.createElement("img");
    var imgobj2 = document.createElement("img");
    imgobj1.src = "<eaglelink:contextpath/>" + data;
    imgobj1.style.width = 90;
    imgobj1.id = "preview";
    imgobj1.style.height = 89;
    div1.appendChild(imgobj1);
    imgobj2.src = "<eaglelink:contextpath/>" + data;
    imgobj2.id = "cropbox";
    imgobj2.style.width = 353;
    imgobj2.style.height = 328;
    div2.appendChild(imgobj2);
    },
    error : function(data, status, e) {
    alert(data + status);
    }
    });
    }

    function chanse() {
    document.getElementById('gj').style.background = "url('<eaglelink:contextpath/>/html/images/jikjk.png') no-repeat";
    document.getElementById("LOGO1").style.display = "inline";
    }
      

  5.   

    <input type="file" style="font-size: 19px; background: none; border: none; margin-left: -50px; margin-top: 3px; position: absolute; z-index: 12; filter: alpha(opacity = 0)"明显是动过手脚了file控件,这个控件已经用css控制浮动到a上面了,点击a其实点击到的是file控件