2010-12-15 1 views
3

나는 버튼 태그를 가지고 있고 입력 태그를 가지고있다.이 태그는 내가 할 값과 다른 텍스트를 가지고있다. 아래를 보라.IE는 실제 버튼 값을 읽지 않습니다! 이것을 둥글게하는 방법?

<button value="<%=RS("field1")%>" name="change" id="change">Change</button> 

이 파이어 폭스에서 멋쟁이 작동하지만 IE ... 암갈색, 암갈색에서, dunnnn ... 버튼의 값이 다시 텍스트 버튼의 표시로 의미 단어 "변화"로되어 있습니다.

나는 보통 단지 사용하는 것이

입력 태그하지만 난 단지 버튼 태그

이 피해 갈 어쨌든 거기를 사용할 수있을 것 같아요? w3schools.com에서

답변

6

:

중요

: 당신은 HTML 형태로 버튼 요소를 사용하는 경우, 다른 브라우저는 서로 다른 값을 제출합니다. Internet Explorer는 텍스트를 <button></button> 태그 사이에 제출하고 다른 브라우저는 값 속성의 콘텐츠를 제출합니다. 입력 요소를 사용하여 버튼을 HTML 형식으로 만듭니다. 나는 주위 방법이 없습니다 알고

따라서, 당신이해야 할 것은 지금까지 <input type="button" />

+0

HTML에 버튼을 추가하고 싶지 않다면, '으로 할 수 없습니다. –

+0

'입력'태그는 실제 텍스트와 다른 값을 가질 수 있다고 생각하지 않습니다. 내 문제였습니다. – Hayley

+0

감사합니다. Andy and Hayley. 예, 입력 태그는 다른 버튼 텍스트와 값을 허용하지 않습니다. 문제는 HTML에서 이것을 할 수없고 IE를 동시에 지원할 수 없다는 것입니다. 기간. 자바 스크립트 onclick 이벤트를 추가하여 제출 전에 값을 수정하거나 여기에서 답변에있는 다른 제안 중 하나를 사용할 수 있습니다. 버튼에 다른 텍스트와 값을 갖는 HTML 전용 솔루션은 IE를 지원하지 않습니다. – Faisal

2

입니다. IE가 버튼 태그를 처리하는 방식 일 뿐이므로 열기 태그와 닫기 태그 사이에 텍스트를 보냅니다.

버튼에 일반 입력 태그를 사용할 수 없다는 것을 감안할 때 숨겨진 필드를 사용하여 사용하려는 방법을 전달하는 방법은 어떻습니까? 당신이

<button name="change:<%=RS("field1")%>" id="change:<%=RS("field1")%>">Change</button> 

다음 반환 된 값을 폐기 서버 측 코드를 사용하는 거라고 그래서 일반적으로이 같은 상황에서 수행 한 어떤

<form action="somepage" method="POST"> 
    <!-- some fields here --> 
    <input type="hidden" name="action" value="<%=RS("field1")%>" /> 
    <button name="change" id="change">Change</button> 
</form> 
+0

나는 숨겨진 필드를 그 자리에 놓았지만, 버튼은 'rs ("field")'의 값을 갖도록 버튼이 루프에있다. 나는 hiddenfield에서 'firstloopvalue, secondloopvalue'등의 출력을 발견했다. – Hayley

+0

글쎄, 문제는 버튼 요소 때문입니다. 단순히 다르게 처리되는 것으로 알려진 문제 일뿐입니다. 그렇다면 입력을 사용할 수없는 이유는 무엇입니까? –

+0

두 개 이상의 단추가있는 경우 쓸모가 없습니다. 어떤 버튼이 눌러 졌는지 인식하는 방법? 승인. 다른 버튼에는 다른 이름이 있어야합니다. 그때 우리는 그 버튼의 값을 검사하는 것 대신에 폼에 존재하는 눌려진 버튼 이름을 테스트해야합니다. – Znik

3

name 속성의 정보를 포함하는 것입니다 이름을 다시 {name, value} 쌍으로 분해합니다.

(당신의 "아이디"의 필요성 어쨌든 고유해야합니다.) 문제에만 (아마 6도하지만 누가 관심) IE7을 그래서

0

IE8, 값을 전송한다.

아무튼, 가능한 속임수는 숨겨진 텍스트의 일부로 값을 넣는 것입니다. 그런 다음 버튼 클릭 이벤트 (자바 스크립트 사용)에서 버튼 텍스트를 해당 값으로 변경합니다.

최종 결과는 같을 것이다 : 당신은 루프에서이 문제를 가지고, 또한

<button value="<%=RS("field1")%>" name="change" onclick="this.innerHTML = this.childNodes[1].innerHTML;"><span>Change</span><span style="display: none;"><%=RS("field1")%></span></button> 

을 두 개 이상의 요소에 동일한 ID를 공유하는 것을 방지하기 위해 ID를 설정하지 마십시오 - 그것은 무효 경우입니다 어떤 이유로 ID가 필요하고 각 반복마다 고유 한 것을 추가하십시오.

+1

IE8 동작은 문서 호환성 모드에 따라 다릅니다. – mrec

+0

@mrec 옙,이 대답을 쓸 때 그걸 몰랐다. IE8을 더 이상 테스트하지 않아도되므로, 자세한 내용을 제공하여 답을 개선하고이 주석을 가리키면 편집 내용이 승인됩니다. –

1

(즉, 다른 브라우저가 제출 한 값이기 때문에) 원하는 값 버튼 "값"속성에 항상 나에게 보인다, 왜 단순히 : 나는 전술 한 바와 같이

<button ... onclick="this.innerHTML=this.value;" ... > 
0

,하지 쌍의 값을 확인 {button_name, button_value} 대신 button_name 만 값을 확인하지 않고 입력 집합에 있는지 확인하십시오.

관련 문제