2013-10-12 66 views
0

我在網絡編程方面很新穎。目前我嘗試使用JavaScript獲取輸入文本值,但不知道爲什麼只返回未定義的值。請幫忙。太謝謝你了~~~ 下面是我的代碼:如何使用JS獲取輸入文本值

<!DOCTYPE HTML> 
<html> 

<head> 
<script type="text/javascript"> 
function CurrentDate(){ 

var dateobj= new Date(); 

var date = dateobj.getDate(); 
var day = dateobj.getDay(); 
var month = dateobj.getMonth(); 
var year = dateobj.getFullYear(); 

} 

function myScript(){ 

document.myform.date.value = CurrentDate(date); 
document.myform.month.value = CurrentDate(month); 
document.myform.day.value = CurrentDate(day); 
document.myform.year.value = CurrentDate(year); 

} 
</script> 
</head> 


<body onload="myScript()"> 
<form name="myform" id="myform"> 
<label for ="date">date: </label> 
<input id="date" type="text" name="date"> 
<label for ="month">month: </label> 
<input id="month" type="text" name="month"> 
<label for ="day">day: </label> 
<input id="day" type="text" name="day"> 
<label for ="year">year: </label> 
<input id="year" type="text" name="year"> 

</form> 

</body> 
</html> 

回答

3

的Javascript功能範圍,所以,以下是發生了什麼事情與您的代碼

function CurrentDate(){ 
    // everything being declared in here is only 
    // going to exist until the end of the function 
    var dateobj= new Date(); 
    var date = dateobj.getDate(); 
    var day = dateobj.getDay(); 
    var month = dateobj.getMonth(); 
    var year = dateobj.getFullYear(); 

} 

function myScript(){ 
    // javascript won't die if you pass in 
    // parameters, they will either be used or ignored by 
    // the method that is called 
    document.myform.date.value = CurrentDate(date); 
    document.myform.month.value = CurrentDate(month); 
    document.myform.day.value = CurrentDate(day); 
    document.myform.year.value = CurrentDate(year); 

} 

你可能想要做的就是刪除當前日期功能,使你的代碼是這個樣子。

function myScript(){ 
    var dateobj= new Date(); 
    document.myform.date.value = dateobj.getDate(); 
    document.myform.month.value = dateobj.getMonth(); 
    document.myform.day.value = dateobj.getDay(); 
    document.myform.year.value = dateobj.getFullYear(); 

} 

My jsfiddle showing how the changes would work
Douglas Crockford's web page會爲您提供資源,以進一步瞭解JavaScript。

+0

非常感謝,現在它的工作。 – LMayday

-1

嘗試document.getElementByID("date").value來獲取值。

另外想想也許有關使用jQuery使它更容易$("#date").val()將獲得或設置輸入值。

+0

在這種情況下,他的主要問題是事實,他不會對這個概念十足的把握功能範圍和功能如何工作一般... jquery不會在這裏幫助 – ermagana

-1
document.getElementById('date').value; // Use this to get your value. 
+0

他的結果顯示爲未定義,主要是因爲他所調用的函數沒有返回任何東西 – ermagana

+0

我指出他如何正確調用元素值。而且他所要做的就是將其設置爲一個變量並返回該變量。例如:function getTheDate(){return date; } |函數getTheMonth(){return month; }我不尊重被解釋爲調用元素值的正確方法。 – PatchGuru

+0

你是個例子,顯示了訪問或設置輸入字段值的好方法;然而,提交者的問題是爲什麼他們的價值未定義。向他們展示獲取價值的好方法是一回事,但幫助他們理解這個問題是另一回事。順便說一句,因爲它是自定義的元素,你可以在技術上訪問日期字段沒有使用document.getElementById方法的唯一id名稱。結帳我的jsfiddle鏈接的例子 – ermagana

0

你試試吧...

<head> 
    <script type="text/javascript"> 
     function CurrentDate(params) { 
      var dateobj = new Date(); 
      if (params == date) { 
       return dateobj.getDate(); 
      } else if (params == month) { 
       return dateobj.getMonth(); 
      } else if (params == year) { 
       return dateobj.getFullYear(); 
      } else if (params == day) { 
       return dateobj.getDay(); 
      } else { 
       alert('Input invalid !'); 
      } 
     } 

     function myScript() { 

      document.myform.date.value = CurrentDate(date); 
      document.myform.month.value = CurrentDate(month); 
      document.myform.day.value = CurrentDate(day); 
      document.myform.year.value = CurrentDate(year); 

     } 
    </script> 
</head> 


<body onload="myScript()"> 
    <form name="myform" id="myform"> 
     <label for ="date">date: </label> 
     <input id="date" type="text" name="date"> 
     <label for ="month">month: </label> 
     <input id="month" type="text" name="month"> 
     <label for ="day">day: </label> 
     <input id="day" type="text" name="day"> 
     <label for ="year">year: </label> 
     <input id="year" type="text" name="year"> 

    </form> 

</body> 

+0

你有沒有測試過..因爲我可以告訴沒有測試,你會得到像..日期是未定義..因爲它是一個未聲明的變量...如果你想讓你的上面的代碼工作..引用你的參數和參數,使所有的字符串.. –