Jump to content
php.lv forumi

Recommended Posts

Posted

Ko nozīmē - "pazaudē"? Apskaties DOM Inspectorā (firefoksī) vai jebkurā anloģiskā DOM koka attēlošanas tūlī - vai tiešām elementam ir "pazudis" id.

Paši no sevis elementu atribūti nepazūd. Vai nu tu neesi tādu pielicis tur, vai arī esi manuāli izdzēsis to.

Posted

Nesapratu, kur tas selekts pazuadē ID? Tas, ka redzams ir nevis selekts, bet spans ir cita lieta, bet ID kā tāds jau nekur nepazūd ne spanam, ne selektam...

Posted

Apskatījos ar Firefox "Inspect" tūli, un izskatās tas šādi:

<span id="selectnosaukums" class="select">-</span>
<select class="styled" style="width: 109px;" name="nosaukums">
<option value="">-</option>
<option value="RA-160">RA-160</option>
</select>

kā redzams, selectam vairs nav ID.

 

Šeit ir JS kods kas liek to span ar bildi:

http://ryanfait.com/resources/custom-check...orm-elements.js

Posted

Un kāds izskatās oriģinālais html kods, kuram tu pielieoto to JS kodu? Tur tiešām ir id atribūts? Es tev neticu, ka ir ;)

Posted

Šāds :)

<select id="nosaukums" name="nosaukums" style="width: 80px;" class="styled"> 
<option value="">-</option> 
<option value="1">RA-160</option></select>

Posted

vai tad abos piemēros ir viens un tas pats select?

Vienam optionos ir value="1" otram value="RA-160". To jau tas dotais skripts tiešām nedara. Arī id neaiztiek, vispār meklē tikai tos selectus, kam ir class="styled".

Posted

Paldies visiem par entuziasmu un manas muļķības atrašanu, bet es tomēr netieku gudrs.

 

<html>

<head>
<script type="text/javascript" src="http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/custom-form-elements.js"></script>
<link rel="stylesheet" href="http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/form.css" media="screen"/>
</head>

<body>

<select id="nosaukums" class="styled">

<option value="">-</option>
<option value="opcijas vertiba">opcija</option>

</select>

<script type="text/javascript">
var selectmenu=document.getElementById("nosaukums");

selectmenu.onchange=function() {

  var chosenoption=this.options[this.selectedIndex]
  alert(chosenoption.value);

}
</script>

</body>
</html>

 

Option'a vērtība tiek dabūta tikai ja ir noņemts class="styled". Kur šajā JS būtu kas jāmaina?

Posted

Onchange eventu tas javaskripts pārraksta ar savu (inputs[a].onchange = Custom.clear; ). Tāpēc tavs events nenostrādās nemaz. Ieliec tur kautvai vienu pašu pliku alert(1) un paskaties, ka neizleks tas alerts. Slikts skripts tas ir.

 

Lai to apietu vai nu salabo to javaskriptu :) vai arī onchange eventa vietā lieto attachEvent vai addEventListener funkcijas:

<script type="text/javascript">

var selectmenu=document.getElementById("nosaukums");

var f = function ()
{
 var chosenoption = this.options[this.selectedIndex];
 alert(chosenoption.value);
};

if (selectmenu.attachEvent)
{
 selectmenu.attachEvent("onchange", f);
}
else
{
 selectmenu.addEventListener("change", f, false);
}
</script>

  • 3 weeks later...
Posted

Viss, ko IE saka par kļūdu: Error: 'this.options' is null or not an object

 

Errors parādās tieši kad izvēlas kādu selecta option'u. Tātad IE nesaprot "this.selectedIndex" - kā to varētu aizstāt?

Posted (edited)

Paskaties ar debugeri (http://www.microsoft.com/express/vwd/ - bezmaksas) un būs viegli redzēt problēmu.

Problēma rodas tikai, ja tiek izmantots custom-form-elements.js, kura rezultātā "this" ir nevis SELECT, bet window elements. Ja izmantosi selectmenu, nevis this, tad ies.

 

Gadījumā, ja neesmu sevi labi paskaidrojis:

var f = function ()
{
 var chosenoption = selectmenu.options[selectmenu.selectedIndex];
 alert(chosenoption.value);
};

Edited by Kaitnieks
×
×
  • Create New...