2012-01-02 4 views
2

일부 페이지에서 작동하지 않습니다하지만이 특정 페이지에 단순히 예 또는 FF 여기A HREF가 onclick을 내가, 내가 많은 페이지에 v에 유사한 코드를 다음 코드를 사용하여 한

중 하나에서 작업을 doeasn't 코드는 다음과 같습니다

내가 정상 버튼으로 변경하는 경우
<form action='/productView.html' method=post name=prod_form> 
<a href='javascript:;' onclick='document.forms['prod_form'].submit(); return false;' class='button101' style='margin-left:92px;'>".$button_text."</a> 
<input type=hidden name=action value='".$button_text."'> 
<input type=hidden name=PRid value=".$databack3[PRid]."> 
<INPUT type='hidden' name='cat_id' value=".$databack3[prodcatID]."> 
<INPUT type='hidden' name='for_user_id' value=".$for_user_id."> 
<input type=hidden name=source value=".$source."></form> 

그러나, 그것을 잘 작동합니다 다음과 같이

<form action='/productView.html' method=post name=prod_form> 
<input type=submit name=action class=button99 value='".$button_text."' style='margin-left:85px;' 
<input type=hidden name=PRid value=".$databack3[PRid]."> 
<INPUT type='hidden' name='cat_id' value=".$databack3[prodcatID]."> 
<INPUT type='hidden' name='for_user_id' value=".$for_user_id."> 
<input type=hidden name=source value=".$source."></form> 

어떤 아이디어?

답변

4

이 문제입니다;

onclick='document.forms['prod_form'].submit(); return false;' 

HTML 인수에 대한 정규식 따옴표를 사용하면 문제가 없습니다.

HTML을 사용하여 문자열을 만드는 데 PHP를 사용하고있는 것처럼 보이므로 따옴표를 이스케이프 처리하십시오.

onclick=\"document.forms['prod_form'].submit(); return false;\" 
+0

뛰어난 변경, 감사합니다 –

8

랩 큰 따옴표 (")에서 onclick 속성의 함량

onclick="document.forms['prod_form'].submit(); return false;" 

그냥 그렇지 따옴표를 요구하는 속성이있어, 명확하게하기 위해,하지만 당신은 동일 할 수 없습니다 당신의 외부 따옴표 안에 따옴표의 종류, 당신이하지 않는 이스케이프 예를 들어

:.

  • OK : <a href="#" onclick="do('this');">bar</a>
  • OK : <a href="#" onclick='do("this");'>bar</a>
  • OK : <a href="#" onclick="do(\"this\");">bar</a>
  • OK : <a href="#" onclick='do(\'this\');'>bar</a>
  • 하지 OK : <a href="#" onclick='do('this');'>bar</a>
  • 하지 OK : <a href="#" onclick="do("this");">bar</a> 여기
3

의 그 너무 single quotes에 있기 때문에 할 수없는 form name을 감지합니다.

<a href='#' onclick='document.forms["prod_form"].submit(); return false;' 
      class='button101' style='margin-left:92px;'>".$button_text."</a> 

바이올린 : http://jsfiddle.net/QFe3L/

0
<b><form action='/productView.html' method=post name=prod_form> <a 
    href='javascript:;' onclick="document.forms['prod_form'].submit(); 
    return false;" class='button101' 
    style='margin-left:92px;'>".$button_text."</a> <input type=hidden 
    name=action value='".$button_text."'> <input type=hidden name=PRid 
    value=".$databack3[PRid]."> <INPUT type='hidden' name='cat_id' 
    value=".$databack3[prodcatID]."> <INPUT type='hidden' 
    name='for_user_id' value=".$for_user_id."> <input type=hidden 
    name=source value=".$source."></form> 

    Hope it works 

</b> 
1

그냥 때문에 작은 따옴표를 사용하는 것입니다. 그냥

onclick='document.forms['prod_form'].submit(); return false;' 

onclick="document.forms['prod_form'].submit(); return false;" 
관련 문제