2010-07-17 1 views
3

나는 현재 두 개의 앵커 태그를 사용하여 데이터베이스에 투표하기 위해 url 쿼리를 보내지 만 양식을 사용하여 URL을 깨끗하게 유지하고 중복 쿼리 (실제로는 문제가 아니지만 못생긴 것처럼 보임)를 사용하지 않도록 변경하려고합니다.앵커 + 자바 스크립트로 양식 제출 - 나쁜 습관?

이제 앵커는 배경 요소를 CSS를 통해 버튼 (링크)에 추가하기 위해 스팬 태그를 포함해야하므로 일반 양식 버튼을 사용할 수 없습니다.

나쁜 모양으로 javascipt를 사용하여 앵커에서 양식을 제출하는 것을 고려합니까? 나는 다른 해결책을 생각할 수는 있지만 모두 문제가 될만한 것은 아닙니다. 내가 자바 스크립트 사용하지 않는 사용자가 대신 URL 쿼리를 보내는 대신 스크립트를 대체해야합니까? (정말 URL 쿼리를 피하기를 원합니다.) 그렇다면이 최선의 실행 방법은 무엇입니까?

감사합니다.
사이먼.

답변

8

양식에 <button>을 사용할 수 있습니다. 콘텐츠를 포함 할 수 있으며 원하는대로 스타일을 지정할 수 있습니다.

이제 정확히 <a>으로 보이게 할 수 있지만 클릭하면 POST 양식이 제출됩니다. 마치 POST를 수행하는 것처럼 <a>이있는 것입니다!

+0

고맙습니다. 매일 새로운 것을 배웁니다. ie6과 ie7이 입력 버튼에서 패딩 (필자의 경우 필수)을 스타일링하는 데 문제가 있다고 들었습니다. 이것은 버튼 요소에 대해서도 마찬가지입니까? –

+1

IE 상자 모델 버그를 참조하십시오. 올바른 DOCTYPE을 선언하면 문제가되지 않습니다. – irreputable

5

이 방법으로 작동합니다 당신의 버튼을 수행 :

<button type="submit" value="upvote"> 
    <span>Vote Up</span> 
</button> 

<button type="submit" value="downvote"> 
    <span>Vote Down</span> 
</button> 

당신은 자바 스크립트와 양식을 제출하지하기 위해 노력하거나 적어도,이 꺼져있을 때 기능을 사용할 수 있는지 확인해야합니다.

+0

감사합니다. - 이것에 대해 몰랐습니다. –

1

정상적인 양식 제출 버튼을 사용하는 것이 좋습니다.
단추에 CSS를 적용하여 세련되게 보이게하거나 배경 이미지를 적용 할 수 있습니다.

나는 그렇게 생각하지 않습니다. 나쁜 습관입니다. 그러나 Firefox 용 No-Script와 같은 부가 기능을 사용하는 사용자의 경우 양식이 중단됩니다.

+1

위의 응답에는 지혜가 있습니다. Noscript는 사이트에 스크립트를 사용하도록 설정하지 않으면 내가 누락 된 내용을 절대로 알 수 없다는 점에서 다소 부적절합니다. 자바 스크립트가 없어도 상황이 좋게 떨어지도록하는 것이 좋습니다. – virstulte

+0

문제는 추가 배경 스타일링이 필요하다는 것입니다. 따라서 제출 요소 내부에 여분의 태그가 있어야합니다. 그러나 그것은 단지 버튼 요소에 대해 알아낼 때까지 단지 문제였습니다. 그래도 고마워 :) –