2013-12-10 31 views
0

這裏是我的問題:如何使用js提交html頁面的formdata

我用html寫了一個register.htm文件。但是當我嘗試使用JS來返回人們寫入當前頁面的數據。它沒有工作。我填寫表格,然後按「提交」按鈕,但沒有任何回到我的頁面。哪個代碼錯了?我能用代碼做什麼?

請幫我用這個html文件返回所有的值(包括:name,sex,initData)。

3Q您的幫助


這裏是我的代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta name="keywords" content="註冊" /> 
<title>註冊</title> 


<script type="text/javascript"> 
    var sumbit = function(){ 
    var name = document.getElementById("name").value; 
    var sex = document.getElementById("sex").value; 
    var form = document.getElementById("form1").value; 
    } 
</script> 

<script type="text/javascript"> 
function initDate(year,month,day) { 
<!-- 
      //每個月的初始天數 
    MonDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 
    //當前的年份 
    var y = new Date().getFullYear(); 
    //當前的月份 
    var m = new Date().getMonth()+1; //javascript月份爲0-11 
    //當前的天份 
    var d = new Date().getDate();   
      //以今年爲準,向後50年,填充年份下拉框 
    for (var i = y; i >(y-50); i--) 
      { 
     year.options.add(new Option(i,i)); 
      } 
      //選中今年 
      year.value=y; 

    //填充月份下拉框 
    for (var i = 1; i <= 12; i++) 
      { 
       month.options.add(new Option(i,i)); 
      } 
      //選中當月 
      month.value = m  
      //獲得當月的初始化天數 
      var n = MonDays[m-1]; 
      //如果爲2月,天數加1 
      if (m == 2 && isLeapYear(year.options[year.selectedIndex].value)) 
        n++; 
      //填充日期下拉框 
      createDay(n,day); 
      //選中當日 
      day.value = new Date().getDate(); 
   } 
function change(year,month,day) //年月變化,改變日,當鼠標點擊select時觸發onclick事件從而調用此函數 
   { 
     var y = year.options[year.selectedIndex].value;     

      //由於傳遞參數的是調用的this指針, 
        var m = month.options[month.selectedIndex].value; 
        //if (m == ""){ clearOptions(day); return;} 
        var n = MonDays[m - 1]; 
        if (m ==2 && isLeapYear(y)) 
        { 
         n++; 
        } 
        createDay(n,day) 
   } 
function createDay(n,day) //填充日期下拉框 
   { 
    //清空下拉框 
        clearOptions(day); 
        //幾天,就寫入幾項 
        for(var i=1; i<=n; i++) 
        { 
        day.options.add(new Option(i,i)); 
        } 
   } 
function clearOptions(ctl)//刪除下拉框中的所有選項 
   { 
      for(var i=ctl.options.length-1; i>=0; i--) 
      { 
     ctl.remove(i); 
     } 
   }  
function isLeapYear(year)//判斷是否閏年 
   { 
    return(year%4==0 || (year0 ==0 && year%400 == 0)); 
   } 
function onload() { 
      initDate(document.form1.select_year,document.form1.select_month,document.form1.select_day); 
      //初始化出生日期下拉菜單內容 
}//--> 

</script> 
      <style> 
       body{ 
       font-family:"幼圓"; 
       font-size:18px; 
      } 
      </style> 
</head> 




<body onload="onload()"> 

<center> 
<table> 
    <hr> 
      <caption style="text-decoration:underline;font-weight:bold;color:#444693"> 
        <h1>註冊</h1> 
      </caption> 

      <tr><td>姓名:</td><td><input type="text" name="name" id="name"></td></tr> 
      <tr><td>性別:</td><td><input type="radio" name="sex" id="sex" checked>男<input type="radio" name="sex" id="sex" checked>女</td></tr> 
      <tr> 
       <td align="right">出生日期:</td> 
       <td> 
       <form name="form1" id="form1"> 
        <select name="select_year" onchange="change(this,document.form1.select_month, document.form1.select_day)"> 
        </select>年 
        <select name="select_month" onchange="change(document.form1.select_year, this,document.form1.select_day)"> 
        </select>月 
        <select name="select_day"></select>日 
       </form> 
       </td> 
      </tr> 
</table> 
      <input type="button" value="提交" onclick="sumbit();" /> 
</center> 
</body> 
</html> 
+6

**你爲什麼大喊我** – qwertynl

+0

+1,因爲我由於兩個時間編輯和無聊,發現它有點滑稽,@qwertynl – qrikko

+0

哪裏是你的服務器 - ?邊碼? – mayabelle

回答

0

我會做了一些澄清,以用戶開始,你應該學習如何使用JavaScript和jQuery的工作,你不能試圖建立的東西,如果它不工作,問這裏。這有一點幫助,可以以非常正確的方式解決你的問題。

替代你的提交輸入與此:

<input type="submit" id="sendform" value="Send"> 

然後,請從CDN在你的頁面的部分添加了jQuery,那就試試這個代碼(添加缺什麼,像姓名,性別代碼。 ..):

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#sendform").click(function() { 
      var year = $("select[name=select_year]:selected").val(); 
      var month = $("select[name=select_month]:selected").val(); 
      var day = $("select[name=select_day]:selected").val(); 
      $.get("page.php",{'year': year, 'month': month... }) 
      .done(function(msg) { 
       alert("do whatever you want with the php response in "+msg); 
      });  
    }); 
}); 
</script> 
+0

首先,謝謝你kind.and我添加jQuery從CDN在我的page.and嘗試你的代碼。但它仍然沒有返回,並且控制檯顯示:Uncaught SyntaxError:意外的標記。我仍然錯了一些代碼?你能幫我實施這一切嗎? – carlo

+0

我應該知道你在php頁面上寫了什麼......然後,所有的js代碼都必須放在$(document).ready函數之間... 查看你的html代碼,檢查每個輸入是否連接在js代碼中,然後問。完成後,將完整的代碼粘貼到jsFiddle上。 – Alberto

+0

對不起,也許我對我的意思不太清楚。讓我嘗試並澄清一點:我嘗試使用「html + JS」來實現JS代碼的目的,從HTML獲取數據並提醒所有人。順便說一句,我沒有Php page.i只是想用js和html.thank爲你kind.ould你幫我一個忙嗎? – carlo

0

首先,你應該考慮修理你的代碼,例如,指定動作和方法在你的表單中,爲了簡單起見,我會回答你如何提交表單(不包括jQuery):

Just c焊割您提交功能:

var sumbit = function(){ 
    var name = document.getElementById("name").value; 
    var sex = document.getElementById("sex").value; 
    document.getElementById("form1").submit(); //submit form 
    } 
+0

感謝您的建議,我與你的代碼固定它,但它仍然沒有返回任何網頁。我應該寫另一個JS文件? – carlo