>  기사  >  웹 프론트엔드  >  양식 재설정 재설정을 해결하는 방법은 기능 오류가 아닙니다.

양식 재설정 재설정을 해결하는 방법은 기능 오류가 아닙니다.

一个新手
一个新手원래의
2017-10-14 09:42:572881검색

사실 이 버그는 오래전에 접한 적이 있어서 최근 개발 중에 또 이 버그를 접했고, 이로 인해 시간도 좀 걸렸습니다. 예를 들어 Ajax를 사용하여 양식을 제출한 후 내용을 재설정해야 했습니다. 사용자 상호 작용을 피하기 위해 양식을 반복 제출하면 일반 양식 HTML 구조는 다음과 같습니다.

<form action="" method="post" id="LoginForm">
  <input type="text" name="username" value="" />
  <input type="password" name="password" value="" />
  <input type="submit" id="submit" name="submit" value="Login" />
  <input type="reset" id="reset" name="reset" value="Reset" />
</form>

단순히 JavaScript를 사용하여 재설정해야 하는 경우 document.getElementById('LoginForm').reset( )를 사용하여 이를 달성합니다. 그런 다음 $('#LoginForm')[0].reset() 또는 $('#LoginForm').trigger("reset을 사용하세요. "), 그러나 위의 HTML 디자인 양식의 경우 이러한 양식 재설정 방법은 유효하지 않습니다! FireBug 디버깅 메시지 ...reset은 함수가 아닙니다. 여기서 문제는 무엇입니까? 때로는 작은 나쁜 습관이 큰 문제를 일으킬 것이라고는 결코 생각하지 못할 때가 있습니다. 오랫동안 인터넷을 검색한 끝에 stackoverflow에서 답을 찾았습니다. >. 문제는 재설정 버튼에 있는 것으로 밝혀졌습니다. 재설정 버튼으로 구현된 HTML에 집중해 보겠습니다. document.getElementById('LoginForm').reset() 来实现,使用jQuery则使用$('#LoginForm')[0].reset() 或者 $('#LoginForm').trigger("reset") ,但是对于上述以HTML设计的表单来说,这些reset表单的方法均失效了!FireBug调试提示...reset is not a function ,这里问题出在哪里了呢?有时候你永远想不到一个小小的坏习惯会带来相当的麻烦,在纠结许久后搜索网络,在stackoverflow找到了答案。原来问题出在了reset按钮上,我们把reset按钮实现的HTML聚焦一下:

<input type="reset" id="reset" name="reset" value="Reset" />

问题就在于id="reset"name="reset",这里的reset属性覆盖了原来的reset方法,自然无法调用并提示is not a function,解决的办法也很简单,避免用reset关键词来命名reset按钮的nameid属性。比如下面的命名方式则比较保险:

<input type="reset" id="ResetButton" name="ResetButton" value="Reset" />

好了,一个由命名带来的小问题就这么解决了,这时我注意到了submit按钮,其id="submit"并且name="submit",会不会导致form表单的submit()方法失效呢?由于我采用的是Ajax方式提交所以这个问题也没有深究,或许把id="submit"name="submit"也改成不同的名字,比如id="SubmitButton"name="SubmitButton"rrreee

문제는 id="reset"name="reset에 있습니다. " , 여기서 reset 속성은 원래 reset 메서드를 포함합니다. 당연히 이 메서드는 호출할 수 없으며 is not a function이라는 메시지가 표시됩니다. 해결 방법도 매우 간단합니다. resetnameid 속성 이름을 지정하는 데 reset 키워드를 사용하지 마세요. 단추. 예를 들어 다음과 같은 이름 지정 방법이 더 안전합니다. 🎜rrreee🎜네, 이름 지정으로 인한 작은 문제가 해결되었습니다. 이때 id="submit" 및 name="submit", 양식의 submit() 메서드가 실패하게 됩니까? Ajax를 사용하여 제출했기 때문에 이 문제를 자세히 조사하지 않았습니다. 어쩌면 id="submit"name="submit"를 다음과 같은 다른 이름으로 변경했을 수도 있습니다. id="SubmitButton"name="SubmitButton"이 더 좋습니다. 🎜

위 내용은 양식 재설정 재설정을 해결하는 방법은 기능 오류가 아닙니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.