Turiu javascript funkciją, kuriai perduodu parametrą. Parametras yra mano tinklalapio elemento (paslėpto lauko) id. Noriu pakeisti šio elemento reikšmę.
function myFunc(variable){
var s= document.getElementById(variable);
s.value = 'New value'
}
Kai tai darau, gaunu klaidą, kad reikšmės negalima nustatyti, nes objektas yra nulinis. Tačiau aš žinau, kad objektas nėra nulinis, nes jį matau naršyklės generuojamame html kode. Bet kokiu atveju, bandžiau derinti šį kodą
function myFunc(variable){
var x = variable;
var y = 'This-is-the-real-id'
alert(x + ', ' + y)
var s= document.getElementById(x);
s.value = 'New value'
}
Kai rodomas įspėjamasis pranešimas, abu parametrai yra tie patys, bet aš vis tiek gaunu klaidą. Tačiau viskas veikia gerai, kai darau
var s= document.getElementById('This-is-the-real-id');
s.value = 'New value'
Kaip galėčiau tai ištaisyti, prašau
EDIT
Elementas, kuriam nustatau reikšmę, yra paslėptas laukas, o id nustatomas dinamiškai, kai puslapis įkeliamas. Bandžiau tai įtraukti į funkciją $(document).ready, bet nepavyko
Jei funkcija myFunc(kintamasis) bus įvykdyta prieš tekstinės srities atvaizdavimą į puslapį, gausite nulinės išimties klaidą.
<html>
<head>
<title>index</title>
<script type="text/javascript">
function myFunc(variable){
var s = document.getElementById(variable);
s.value = "new value";
}
myFunc("id1");
</script>
</head>
<body>
<textarea id="id1"></textarea>
</body>
</html>
//Error message: Cannot set property 'value' of null
Taigi įsitikinkite, kad jūsų tekstinė sritis egzistuoja puslapyje, ir tada iškvieskite myFunc, galite naudoti window.onload arba $(document).ready funkciją. Tikiuosi, kad tai padės.
Atsižvelgiant į
<div id="This-is-the-real-id"></div>
tada
function setText(id,newvalue) {
var s= document.getElementById(id);
s.innerHTML = newvalue;
}
window.onload=function() { // or window.addEventListener("load",function() {
setText("This-is-the-real-id","Hello there");
}
padarys tai, ko norite
Pateikta
<input id="This-is-the-real-id" type="text" value="">
tada
function setValue(id,newvalue) {
var s= document.getElementById(id);
s.value = newvalue;
}
window.onload=function() {
setValue("This-is-the-real-id","Hello there");
}
padarys tai, ko norite
function setContent(id, newvalue) {
var s = document.getElementById(id);
if (s.tagName.toUpperCase()==="INPUT") s.value = newvalue;
else s.innerHTML = newvalue;
}
window.addEventListener("load", function() {
setContent("This-is-the-real-id-div", "Hello there");
setContent("This-is-the-real-id-input", "Hello there");
})
<div id="This-is-the-real-id-div"></div>
<input id="This-is-the-real-id-input" type="text" value="">
pabandykite kaip toliau, tai veiks...
<html>
<head>
<script>
function displayResult(element)
{
document.getElementById(element).value = 'hi';
}
</script>
</head>
<body>
<textarea id="myTextarea" cols="20">
BYE
</textarea>
<br>
<button type="button" onclick="displayResult('myTextarea')">Change</button>
</body>
</html>