在将在线表单输入提交并存储到数据库之前,我需要一些帮助来预处理它们。这个表单实际上是在 Joomla 3.1 中的 ChronoForms 组件的帮助下完成的。该表单是使用 HTML 制作的,处理是使用 JQuery/JavaScript 使用“OnLoad”事件中的“Load JS”操作完成的(对于那些熟悉 ChronoForms 的人)。
简化形式如下:
<form name="online_form" id="online_form">
<select name="period_year" id="period_year">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="period_month" id="period_month">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="hidden" name="period" id="period"/>
<input type="submit" id="submit_form"/>
</form>
我想要做的是当用户提交表单时, period_year 和 period_month 的值组合成一个文本字符串“x 年和 y 月”,并作为期间的值。数据库最终将只存储 period 而不是 period_year 和 period_month。
我尝试在提交表单时使用事件侦听器,但它似乎不起作用:
window.addEvent('domready', function() {
$('online_form').addEventListener('submit',
function() {
var period_year = $('period_year').value;
var period_month = $('period_month').value;
$('period').value=period_year+' year and '+period_month+' months';
}
);
}
另一种选择是在 select 元素上使用 onchange 属性,如下所示,但它似乎对我也不起作用:
....
<select name="period_year" id="period_year" onchange="process()">...</select>
<select name="period_month" id="period_month" onchange="process()">...</select>
....
对于头部:
function process() {
$('period').value=period_year+' year and '+period_month+' months';
};
我做错了什么?或者还有其他正确的方法吗?