2013-10-12 32 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

你有没有测试过..因为我可以告诉没有测试,你会得到像..日期是未定义..因为它是一个未声明的变量...如果你想让你的上面的代码工作..引用你的参数和参数,使所有的字符串.. –