reset按钮的onclick方法,点击两次才执行,要怎么解决?

时间:2021-08-14 19:33:28
 <input type="reset" value="取消" class="btn gray" onclick="resetAvatar()"/> 


 function resetAvatar() {
        if ($('#ImgURL').val() == null)
        { document.getElementById('avatar').src = '/Avatar/nopic.png' }
        else
        { document.getElementById('avatar').src = '/Avatar/' + $('#ImgURL').val() }
    }

点击第一次的时候重置了文本框的内容,点击第二次才执行onclick

11 个解决方案

#1


type="button"

#2


 <input type="reset"  就是内置的“重置”按钮,会重置FORM内的输入控件内容。
1楼正解。把type="reset"换成type="button" 。

#3


reset是表单的重置方法

#4


resetAvatar肯定执行,没反应是你代码有写的有问题

#5


 function resetAvatar() {
        if ($('#ImgURL').val() == null)
        { document.getElementById('avatar').src = '/Avatar/nopic.png' }
        else
        { document.getElementById('avatar').src = '/Avatar/' + $('#ImgURL').val() }
    }

都用jquery的代码 试试,

document.getElementById('avatar').src = '/Avatar/nopic.png'
$("#avatar").attr("src","'/Avatar/nopic.png");

#6


因为我想要重置表单的内容,但是表单中的图片没法重置,所以写了个onclick,如果改成button,就得在函数里面再把表单内容重置一遍吧?我是觉得太麻烦了

引用 3 楼 u012418098 的回复:
reset是表单的重置方法

#7


引用 2 楼 theforever 的回复:
 <input type="reset"  就是内置的“重置”按钮,会重置FORM内的输入控件内容。
1楼正解。把type="reset"换成type="button" 。


因为我想要重置表单的内容,但是表单中的图片没法重置,所以写了个onclick,如果改成button,就得在函数里面再把表单内容重置一遍吧?会不会麻烦

#8


引用 4 楼 showbo 的回复:
resetAvatar肯定执行,没反应是你代码有写的有问题


有反应,只是每次都要点击两次,第一次点击要先重置表单,第二次才执行,

#9


引用 8 楼 xiaoweiyang23 的回复:
Quote: 引用 4 楼 showbo 的回复:

resetAvatar肯定执行,没反应是你代码有写的有问题


有反应,只是每次都要点击两次,第一次点击要先重置表单,第二次才执行,

不可能的,onclick每次点击都会执行,自己检查事件函数,如果你要重置表单后检查表单的值之类的,应该是onclick执行完毕了才会到重置表单,导致状态不一致,所以下次点击某个值为重置为原始状态了所以判断才会成立什么的。。你自己增加alert语句就知道了,每次点击reset都会执行的

 function resetAvatar() {
alert('I IN')

#10


解决了,谢谢各位。改成下面这样就好了
<input type="button" value="取消" class="btn gray" onclick="reset();resetAvatar()"/> 

#11


引用 9 楼 showbo 的回复:
Quote: 引用 8 楼 xiaoweiyang23 的回复:

Quote: 引用 4 楼 showbo 的回复:

resetAvatar肯定执行,没反应是你代码有写的有问题


有反应,只是每次都要点击两次,第一次点击要先重置表单,第二次才执行,

不可能的,onclick每次点击都会执行,自己检查事件函数,如果你要重置表单后检查表单的值之类的,应该是onclick执行完毕了才会到重置表单,导致状态不一致,所以下次点击某个值为重置为原始状态了所以判断才会成立什么的。。你自己增加alert语句就知道了,每次点击reset都会执行的

 function resetAvatar() {
alert('I IN')


额,,确实是有执行也,

#1


type="button"

#2


 <input type="reset"  就是内置的“重置”按钮,会重置FORM内的输入控件内容。
1楼正解。把type="reset"换成type="button" 。

#3


reset是表单的重置方法

#4


resetAvatar肯定执行,没反应是你代码有写的有问题

#5


 function resetAvatar() {
        if ($('#ImgURL').val() == null)
        { document.getElementById('avatar').src = '/Avatar/nopic.png' }
        else
        { document.getElementById('avatar').src = '/Avatar/' + $('#ImgURL').val() }
    }

都用jquery的代码 试试,

document.getElementById('avatar').src = '/Avatar/nopic.png'
$("#avatar").attr("src","'/Avatar/nopic.png");

#6


因为我想要重置表单的内容,但是表单中的图片没法重置,所以写了个onclick,如果改成button,就得在函数里面再把表单内容重置一遍吧?我是觉得太麻烦了

引用 3 楼 u012418098 的回复:
reset是表单的重置方法

#7


引用 2 楼 theforever 的回复:
 <input type="reset"  就是内置的“重置”按钮,会重置FORM内的输入控件内容。
1楼正解。把type="reset"换成type="button" 。


因为我想要重置表单的内容,但是表单中的图片没法重置,所以写了个onclick,如果改成button,就得在函数里面再把表单内容重置一遍吧?会不会麻烦

#8


引用 4 楼 showbo 的回复:
resetAvatar肯定执行,没反应是你代码有写的有问题


有反应,只是每次都要点击两次,第一次点击要先重置表单,第二次才执行,

#9


引用 8 楼 xiaoweiyang23 的回复:
Quote: 引用 4 楼 showbo 的回复:

resetAvatar肯定执行,没反应是你代码有写的有问题


有反应,只是每次都要点击两次,第一次点击要先重置表单,第二次才执行,

不可能的,onclick每次点击都会执行,自己检查事件函数,如果你要重置表单后检查表单的值之类的,应该是onclick执行完毕了才会到重置表单,导致状态不一致,所以下次点击某个值为重置为原始状态了所以判断才会成立什么的。。你自己增加alert语句就知道了,每次点击reset都会执行的

 function resetAvatar() {
alert('I IN')

#10


解决了,谢谢各位。改成下面这样就好了
<input type="button" value="取消" class="btn gray" onclick="reset();resetAvatar()"/> 

#11


引用 9 楼 showbo 的回复:
Quote: 引用 8 楼 xiaoweiyang23 的回复:

Quote: 引用 4 楼 showbo 的回复:

resetAvatar肯定执行,没反应是你代码有写的有问题


有反应,只是每次都要点击两次,第一次点击要先重置表单,第二次才执行,

不可能的,onclick每次点击都会执行,自己检查事件函数,如果你要重置表单后检查表单的值之类的,应该是onclick执行完毕了才会到重置表单,导致状态不一致,所以下次点击某个值为重置为原始状态了所以判断才会成立什么的。。你自己增加alert语句就知道了,每次点击reset都会执行的

 function resetAvatar() {
alert('I IN')


额,,确实是有执行也,