これが私がそれを処理した方法です。
あなたが提案したように、JavaScriptが有効になっているユーザーには、月と年の別々のドロップダウンが表示されます。JavaScript を使用しないユーザーには、適切な日付形式が示されているテキスト入力フィールドが表示されます。
フォームのコンテンツを元のサーバーに送り返すことは絶対に避けてください。これはDirect Post Methodを使用するポイントを無効にするためです。
JQuery を使用した基本的なコードを次に示します。
<form id="cart-form" action="...">
...
Expiration Date:
<div id="exp_date_wrap">
<input name="x_exp_date" type="text" /> (format: mm/yy)
</div>
<select name="x_cc_month" id="x_cc_month" style="display:none">
<option value="">-- month --</option>
...
</select>
<select name="x_cc_year" id="x_cc_year" style="display:none">
<option value="">-- year --</option>
...
</select>
<script>
$('#exp_date_wrap').hide();
$('#x_cc_month, #x_cc_year').show();
$('#cart-form').submit(function() {
$('#x_exp_date').val(
$('#x_cc_month :selected').val() + '/' +
$('#x_cc_year :selected').val()
);
});
</script>
</form>