Jump to content
php.lv forumi
  • 0

select onchange mainīt mainīgā vērtību


klavsr

Question

Sveiki,

 

mainīgajam "test" tiek noteikta vērtība "0". Tālāk ar onchange vērtība tiek mainīta atkarībā kurš option tiek izvēlēts. vērtība mainās, un alert() to parāda, taču pēc tam rādot mainīgo ar dcument.write(); rāda oriģinālo vērtību "0", nevis jauno. Kā To labot?

 

<script type="text/javascript">
var test = 0;
</script>

<select onchange="var test = this.options[this.selectedIndex].value; alert(test);">
<option value="0"></option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>

<script type="text/javascript">
document.write(test);
</script>

 

Paldies!

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

<select onchange="var test = this.options[this.selectedIndex].value; alert(test);">

 

Ja nemaldos, tiklīdz tu raksti var, tā mainīgais tiek pārdefinēts. Un konkrētā gadījumā, viņš tiek pārdefinēts par lokālo mainīgo(onchange ietvarā)...

Edited by briedis
Link to comment
Share on other sites

  • 0

document.write izpildās jau pie ielādes, bet select vērtību tu nomaini tikai vēlāk.

Es darītu kaut kā tā. Var iztikt arī bez mainīgā test. Pārbaudījis neesmu.

<select onchange="document.getElementById('selectValue').innerHtml = this.value;">
<option value="0"></option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>

<div id="selectValue">
</div>

Link to comment
Share on other sites

  • 0

Šeit nedaudz sīkāk:

 

sākumā ir mainīgais test, un vērtība 0.

ar select onchange šo vērtību jānomaina uz option value

 

tālāk tiek rādīta kāda masīva viena no vērtībām atkarībā no "test" - document.write(masivs[test]);

 

 

<script type="text/javascript">
var test = 0;
var masivs = new Array();

masivs[0] = 'radam nulto';
masivs[1] = 'radam pirmo';
masivs[2] = 'radam otru';
masivs[3] = 'radam treso';
</script>

<select onchange="test = this.value; alert(test);">
<option value="0"></option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>

<script type="text/javascript">
document.write(masivs[test]);
</script>

 

tātad no sākuma tiek rādīta nultā masīva vērtība, kas būtu pareizi, bet kā lai pēc tam ar onchange nomainot "test" vērtību, liktu rādīt jauno?

Link to comment
Share on other sites

  • 0

protams, ka innerHTML tikai un vienīgi (un nevis innerHtml). Tev jau rakstīja, ka document.write() izpildās vienreiz un pie ielādes. Ok, to var izmantot priekš ielādes lieluma. xPtv45z jau visu priekšā uzrakstīja, bija tikai jāpielabo tas kods savām vajadzībām.

 

<script type="text/javascript">
var test = 0;
var masivs = [];
masivs[0] = 'radam nulto';
masivs[1] = 'radam pirmo';
masivs[2] = 'radam otru';
masivs[3] = 'radam treso';
</script>

<select onchange="document.getElementById('selectValue').innerHTML = masivs[test = this.value];">
<option value="0"></option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>

<div id="selectValue">
<script type="text/javascript">
document.write(masivs[test]);
</script>
</div>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...