Zihni Özgürlük

Javascript Hatası:…submit is not a function

Javascripteki ayrılmış kelimeler(reserved words), button ismi ve fonksiyon olarak kullanıldığında çatışma(collision) meydana geliyor.

Hata Mesajı:

1
this.form.submit is not a function

“Submit” metodunu kullandığım yer:

1
<select  onchange="this.form.submit();">

Buton adı olarak “submit” kulladığım yer:

1
<input type="submit" name="submit" value="Ekle">

Buton adını “submit”ten başka bir adla, örneğin “ekle” olarak değiştirdiğimde sorun düzeliyor.

1
<input type="submit" name="ekle"  value="Ekle">

innerHTML Özelliği

Sözdizimi:

var hamHTML = eleman.innerHTML;
eleman.innerHTML = hamHTML;

Eleman içeriğini -varsa alt elemanları da- biçimlendirilmemiş(ham) html olarak getirir veya belirler.

1
2
3
4
5
6
7
8
<div id="myDiv"><p>içerik</p>
<p>paragraf metin</p>
</div>
 
//myDiv elemanın içeriği:
document.getElementById("myDiv").innerHTML;
 
// Çıktı "<p>içerik</p><p>paragraf metin</p>"

setAttribute() Metodu

Sözdizimi:

eleman.setAttribute(ad, deger);

Elemanlara yeni nitelik ekler veya varolan elamanın niteliğini değiştirir.

adi parametresiyle niteliğin adı belirtilir.
deger parametresiyle niteliğin değeri girilir.

<input id="txtAdi" type="text" />

Yukardaki gibi bir input elemanımız olsun, value niteliğini Atatürk yapalım.

document.getElementById("txtAdi").setAttribute("value", "Atatürk");

RemoveChild() Metodu

Sözdizimi:

element.removeChild(child);

Çocuk düğümü siler.

element : Üst(parent) düğümün adıdır.
child : Silinecek olan çocuk düğümün adıdır.

düğüm başarıyla silinirse düğüm adını döndürür, başarısız olursa NULL döndürür.

Aşağıdaki gibi bir belgemiz olsun.

1
2
3
4
5
6
7
8
9
10
<html>
<head>
</head>
<body>
<div id="myDiv">
<span id="span1">Faust</span><br />
<span id="span2">Vadideki Zambak</span> <br />
</div>
</body>
</html>

span1 id’li düğümü silen kod:

1
2
3
4
5
var element = document.getElementById("myDiv");
// FF için span1 id li düğümü siliyoruz.
element.removeChild(element.childNodes[1]);
// IE için span1 id li düğümü siliyoruz.
element.removeChild(element.childNodes[0]);

getAttribute() Metodu

Sözdizimi:

nitelikDegeri = eleman.getAttribute(nitelikAdi)

nitelikAdi parametresi ile verilen niteligin değerini döndürür.

Aşağıdaki gibi bir belgemiz olsun.

1
2
3
4
5
6
7
8
9
<html>
<head>
</head>
<body>
<div id="myDiv" align="left" >
 
</div>
</body>
</html>

myDiv elemanının, align niteliğinin degerini yazdıran kod:

1
2
3
4
5
6
7
8
9
<script type="text/javascript">
var div1 = document.getElementById("myDiv");
var align = div1.getAttribute("align");
document.write(align);
</script>
 
Çıktı:
 
left