2010-07-28 12 views
0

PHP 파일을로드 할 때 나는 텍스트를 설정하려고 ... 나는 이런 식으로 뭔가를해야만하고있는 중이 야 :텍스트 영역 및 자바 스크립트

<?php echo tep_draw_textarea_field('enquiry', 'soft', 50, 15); ?> 
<?php 
echo "<script> 
var a = document.getElementsByName('enquiry'); 
a.value='Pedido de Informação de Preço, relativamente ao producto: http://www.musicland.pt/musicstore/product_info.php?products_id=2581'; 
</script>"; ?> 

지금 나는이 바보지만 단지 텍스트는 것을 알고있다. 먼저 평가를하고 싶다면 이드가 있고 텍스트 영역을 채우십시오.

생성 된 소스가 정확하고 자바 스크립트 오류는 없지만 텍스트 영역은 여전히 ​​비어 있습니다.

이유를 모르겠습니까?

누군가가 라이브 노드 목록을 반환이

+0

우리는 생성 된 HTML 좀 걸릴 수 있습니다 경우 더 갈 것입니다. – Triptych

답변

1

getElementsByTagName에 나를 도울 수 있습니다. 요소에 ID가있는 경우 getElementById을 사용하십시오. 노드 목록의 여러 요소에서이 작업을 수행하려면 for 루프를 사용하십시오.

var a = document.getElementById('enquiry'); 
+2

현재 코드에서, 하나의 텍스트 영역 만 가지고 있다고 가정하면, 'a.value' 대신'a [0] .value'를 사용할 수 있습니다. –

1

getElementsByName() 지정된 이름을 가지는 모든 요소의 배열을 반환한다. 텍스트 영역이 페이지에서 "inquiry"라는 이름의 첫 번째 요소 인 경우 [0]을 추가하여 배열에서 선택할 수 있습니다. 둘째, 결코 단일 문자 변수 이름을 사용해서는 안됩니다. 그들은 이해하고 작업하기가 훨씬 어렵습니다.

var enquiryTextArea = document.getElementsByName('enquiry')[0]; 
a.value="blah blah blah"; 

enquiryTextArea가 정확히 어떤 변수 방법을 알려줍니다 :이 작업을해야합니다 코드의 가독성 버전입니다. 그 문의 텍스트 필드 자체. 배열이 아닙니다. 코드 크기에 신경 쓰면 자바 스크립트 마이너를 사용할 수 있습니다. 하나 개의 특정 요소를 선택할 때 더 나은 여전히, 당신은 이름을 속성으로 getElementById()을 사용할 수 있습니다

비 양식 관련 태그에 더 이상 사용하고 더 나은 :

var enquiryTextArea = document.getElementById('enquiry'); 
a.value="blah blah blah"; 

이 정말 전형적인 소리 것입니다,하지만 firebug for firefox 수 이러한 문제를 진단 할 때 큰 도움이 될 것입니다. jquery은 자바 스크립트로 절대적으로 무엇이든 할 수 있습니다. : D

0

사용 :

var a = document.getElementsByName('enquiry')[0]; 

그리고 그것은 작동합니다. 하지만 나는 meder의 의견에 동의합니다. 이름이 같은 두 개 이상의 텍스트 영역이 있고 그들 모두를 변경하려면 다음과 같이 for 루프에 넣고해야

var a = document.getElementsByName('enquiry'); 
for(var i=0; i<a.length; i++) 
    a[i].value = "Some Text"; 
0
var a = document.getElementsByName('enquiry'); 

는 페이지가로드 될 때까지 비어 있습니다.

을 태그에 넣고 onLoad 이벤트를 입력하고 onLoad에서 호출하는 코드로 만듭니다.

echo "<script> 
function foo() { 
    var a = document.getElementsByName('enquiry'); 
    a.value='Pedido de Informação de Preço, relativamente ao producto: http://www.musicland.pt/musicstore/product_info.php?products_id=2581'; 
} 
</script>"; 

그리고 body 태그에

:

<body onLoad="foo();"> 
관련 문제