si definiscono gli attributi personalizzati utilizzando l'attributo "dati". Nel tuo codice, non esiste un attributo custome che sono sicuro tu volessi che fosse un ID. Il formato esatto è "data-*"
, dove "*"
viene sostituito con il nome dell'attributo personalizzato desiderato, quindi impostato sul valore di stringa desiderato. Quindi, nel codice, dovrebbe essere idealmente:
<select onchange="check_status(this);" name="status[171]">
<option selected="true" value="open" data-id="open04f2cf35e4d7a1c0158459fd0450a605">open</option>
<option value="in_process" data-id="pending104f2cf35e4d7a1c0158459fd0450a605">pending</option>
<option value="finished" data-id="finished04f2cf35e4d7a1c0158459fd0450a605">finished</option>
<option value="canceled" data-id="canceled04f2cf35e4d7a1c0158459fd0450a605">canceled</option>
</select>
supponendo che si desidera l'usanza attributo da "id".
Ci sono due modi per recuperare il valore di "dati" attributi utilizzando puro JavaScript: oltre alla buona vecchia moda get/setAttribute(), è inoltre possibile accedere utilizzando la proprietà "dataset" dell'elemento
Utilizzando getAttribute del DOM (a) proprietà
function check_status(obj) {
var myoption = obj.options[obj.selectedIndex];
var uid = myoption.getAttribute('data');
alert(uid);
// setting and removing the data-id attribute
myoption.setAttribute("data-id", "foo") //changes "data-id" to "foo"
myoption.removeAttribute("data-id") //removes "data-id" attribute entirely
}
Utilizzando proprietà set di dati di JavaScript
function check_status(obj) {
var myoption = obj.options[obj.selectedIndex];
var uid = myoption.dataset.id;
alert(uid);
var statusId = myoption.dataset["id"]
alert(statusId);
}
Btw, il 'data' attributo non esiste. Se si desidera utilizzare dati personalizzati, utilizzare invece qualcosa come "data-uid". –