2012-08-23 62 views
0

我在這裏是新手(和一般的Web開發),我一直在試圖理解爲什麼我的函數沒有在指定的事件上執行。簡單的HTML輸入onkeypress事件不起作用

我發現這個職位,這似乎正是我想要像什麼,但即使這樣沒有工作:

html <input type="text" /> onchange event not working

任何幫助,將不勝感激。我的確切代碼如下。我有一些文本輸入字段(實際上是搜索框),最終我希望在用戶將數據輸入文本字段時檢查複選框,但它甚至不會調用該函數。

我在閱讀上面提到的帖子時嘗試了幾個變體。下面是我嘗試過的一些輸入字段屬性:

<input type="date" name="dt" size="10" value="2012-07-21" onChange="SetCheckBox('d')" /> 
<input type="search" size="10" name="sl" value="" onChange="SetCheckBox('n')" /> 
<input type="search" size="10" name="sf" value="" onkeypress="SetCheckBox('n')" /> 
<input type="search" size="20" name="st" value="" onkeypress="SetCheckBox(this);" /> 

,這裏是我的javascript:

<script language="javascript" type="text/javascript"> 
    Function SetCheckBox(id) { 
     alert (id.value); 
     document.write('test'); 
    } 
</script> 

我曾嘗試沒有傳遞任何參數,只是做一個文件撰寫,但它不似乎在調用這個函數。是的,JavaScript已啓用,並在頁面上的其他地方工作就好了! 腳本位於表格正下方的正文中。

(缺少)行爲在多個瀏覽器中是相同的。 感謝您提供任何幫助。 Ray

+1

你爲什麼要用'大寫'功能? – PeeHaa

回答

1

對於JavaScript function關鍵字是小寫。

Function SetCheckBox(id) 

需求是:

function SetCheckBox(id) 

此外,你不及格對象獲得一個ID,所以......

function SetCheckBox(id) { 
     var ele = document.getElemenyById(id); 
     alert (ele.value); 
     document.write('test'); 
} 
+1

頁面渲染後,從來沒有做document.write – mplungjan

+0

謝謝...我知道這是一些小事。我在函數內部的代碼只是測試它是否會執行某些操作而已。我使用了幾種不同的方法,這就是爲什麼我有id.value(這是其他頁面在傳遞'this'時顯示的方式)。 – rayvd

0

在javascript函數關鍵詞寫在小字母,在這裏你寫了大寫字母F.除了已經提到的大寫的F功能

1

幾個問題

  1. 你的函數傳遞了一個名爲id變量,但預計現場
  2. 你傳遞一個字符串,它是不是一個ID,而不是指一個場
  3. 只有使用(this)的最後一個版本可以工作,但沒有提示值
  4. document.write將在頁面加載後調用頁面及其上的所有腳本(例如,不在線)

所以代碼應該是

function SetCheckBox(id) { 
    var val = document.getElementById(id).value 
    alert (val); 
    document.getElementById('someContainer').innerHTML=val; 
} 

OR

function SetCheckBox(fld) { 
    var val = fld.value 
    alert (val); 
    document.getElementById('someContainer').innerHTML=val; 
} 

根據您的描述,我的猜測是,你想這樣做:DEMO

<input type="date" id="dt" name="dt" size="10" value="2012-07-21" 
onkeypress="SetCheckBox(this)" /> 
<input type="checkbox" id="dtChk" /> 

使用該腳本

function SetCheckBox(fld) { 
    var checkbox = document.getElementById(fld.id+"Chk"); 
    // check if something is entered, uncheck if not 
    checkbox.checked=fld.value.length>0; 
} 

,甚至帶有附加

window.onload=function() { 
    document.getElementById("dt").onkeypress(); 
} 

將檢查框,如果該字段不是在(重新)加載時間空

+0

這幾乎是我想要的...... :)感謝所有的幫助! – rayvd

0

onkeypress事件和onchange事件應該可以工作

<body> 
<script type="text/javascript"> 

function SetCheckBox() { 
    alert("1"); 
} 

</script> 

<input id = "test" value="" onkeypress="SetCheckBox();" /> 

<input id = "test1" value="" onchange="SetCheckBox()" /> 

</body> 
+0

與問題中的問題無關,不要在代碼中使用'<' – mplungjan