1

私はこのコードを持っています:

<html>
<head>

<script type="text/javascript">

/***********************************************
* Drop Down Date select script- by JavaScriptKit.com
* This notice MUST stay intact for use
* Visit JavaScript Kit at http://www.javascriptkit.com/ for this script and more
***********************************************/

var monthtext=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sept','Oct','Nov','Dec'];

function populatedropdown(dayfield, monthfield, yearfield){
     var today=new Date()
     var dayfield=document.getElementById(dayfield)
     var monthfield=document.getElementById(monthfield)
     var yearfield=document.getElementById(yearfield)
     for (var i=0; i<31; i++)
         dayfield.options[i]=new Option(i, i+1)
     dayfield.options[today.getDate()]=new Option(today.getDate(), today.getDate(), true, true) //select today's day
     for (var m=0; m<12; m++)
         monthfield.options[m]=new Option(monthtext[m], monthtext[m])
     monthfield.options[today.getMonth()]=new Option(monthtext[today.getMonth()], monthtext[today.getMonth()], true, true) //select today's month
     var thisyear=1920;  // fixed start year of 1900
     var nowyear = 1994;
     var diff = nowyear - thisyear +1; // number of years from 1900
     for (var y=0; y<diff; y++){
         yearfield.options[y]=new Option(thisyear, thisyear)
         thisyear+=1
     }
}
</script>

<script>
function getcombined(){
    var year = document.getElementbyId("yeardropdown").value;
    var month = document.getElementById("monthdropdown").value;
    var day = document.getElementById("daydropdown").value;
    var combineddob = year + "-" + "month" + "-" + day;
    document.getElementById("hidden1").value=combineddob
}
</script>


</head>

<body>
<form action="" name="someform">
<select id="daydropdown" name='day' value="daydropdown">
</select> 
<select id="monthdropdown" name='month' value="monthdropdown">
</select> 
<select id="yeardropdown" name='year'  value="yeardropdown">
</select> 
<input type='hidden' id='hidden1' name='dob' value="" />
<input type='submit' />
</form>

<script type="text/javascript">

window.onload=function(){
    populatedropdown("daydropdown", "monthdropdown", "yeardropdown")
}
</script>


</body>
</html>

フォームが送信されたとき<input type='hidden' id='hidden1' name='dob' value='' />に更新する必要があります。var combineddob

私はいくつかの方法を試しましたが、javascriptについてあまり知らないので、これらの種類の修正は得意ではありません。

私は何かを見過ぎているかもしれませんが、ここで何が悪いのかまだわかりません。

4

3 に答える 3

2

ユーザーがフォームを送信する前に何かを実行したい場合は、フォームのonsubmitプロパティを設定する必要があります。この場合:

<script>
<!--
function getcombined(){
    var year = document.getElementById("yeardropdown").value;
    var month = document.getElementById("monthdropdown").value;
    var day = document.getElementById("daydropdown").value;
    var combineddob = year + "-" + month + "-" + day;
    document.getElementById("hidden1").value=combineddob;
    return true;
}
-->
</script>


</head>

<body>
<form action="" name="someform" onsubmit='return getcombined();'>

フォームが実際に後で送信する必要があることを示すために、関数に「returntrue」を追加しました。また、2つのタイプミス、つまりgetElementbyIdの小文字のbとセミコロンの欠落を修正しました。

于 2012-10-01T23:58:55.210 に答える
1

HTMLを変更する

<input type='submit' />

これに

<input type='submit' id="submitButton" />

とあなたのスクリプトで

window.onload = function(){
    populatedropdown("daydropdown", "monthdropdown", "yeardropdown");
    var submitBtn = document.getElementById("submitButton");
    submitBtn.onsubmit = function(){getcombined();};
};

onsubmitこれにより、送信ボタンがクリックされたときに関数を実行できるようになります。次に、関数を呼び出してgetcombined();からフォームを送信します。

編集

おそらく、次の2行を変更する必要があります。

var combineddob = year + "-" + "month" + "-" + day;
document.getElementById("hidden1").value=combineddob

var combineddob = year + "-" + month + "-" + day;
document.getElementById("hidden1").value=combineddob;

var year = document.getElementbyId("yeardropdown").value;

getElementbyIdto(これは関数ではないことに注意してください)

var year = document.getElementById("yeardropdown").value;
于 2012-10-01T23:45:25.230 に答える
1

初めに:

var year = document.getElementbyId("yeardropdown").value;

に:

var year = document.getElementById("yeardropdown").value;

送信ボタンにonclickを追加します。

<input type='submit' onclick="getcombined();alert(hidden1.value);" />
于 2012-10-01T23:53:28.167 に答える