js 控制 的選中
畫面上根據 輸入的“身份證號”來自動填入 “出生日期”,自動選擇“性別”。
如下面程式碼:
要求輸入“身份證號”自動計算“出生年月”和“性別”
<tr>
<th>姓名<font color="red">*</font>:</th>
<td>
<s:textfield name="name" id="name" cssStyle="width:140px;" maxlength="20" />
</td>
<th>身份證號:</th>
<td>
<s:textfield name="idcard" id="idcard" cssStyle="width:140px;" maxlength="18" onchange="getBirthday(); "/>
</td>
</tr>
<tr>
<th>出生年月:</th>
<td>
<s:textfield name="birthday" id="birthday" readonly="true" cssStyle="background-color:#CCCCCC;width:140px;" />
</td>
<th>性別:</th>
<td>
<s:radio list="#{'男':'男','女':'女'}" name="sex" id="sex" listKey="key" listValue="value" ></s:radio>
</td>
</tr>
其中在js中,控制<s:radio>的選擇
js程式碼:
// 身份證號check
// check身份證號碼
function IDCard_validate(id){
var inputStr = trim($("input[name='" + id + "']").val());
var inputPro = "身份證號";
if (inputStr == null)
inputStr = "";
var format = inputStr.length;
if (!this.is0AndPosInteger(inputStr)) {
$('input[name="'+ id +'"]').addClass('errorItem');
$.messager.alert('提示', inputPro + "輸入不合法!");
return false;
}
if (inputStr == "")
return true;
if ((format == 18) && (!this.checkCheckStr(inputStr))) {
$('input[name="'+ id +'"]').addClass('errorItem');
return false;
}
if (format == 15 || format == 18) {
if (!this.checkID(inputStr, inputPro, format)) {
$('input[name="'+ id +'"]').addClass('errorItem');
return false;
}
} else {
$('input[name="'+ id +'"]').addClass('errorItem');
$.messager.alert('提示', "身份證號碼的位數輸入不正確!");
return false;
}
$('input[name="'+ id +'"]').removeClass('errorItem');
return true;
}
// 根據身份證號,取得相關的值
function getBirthday() {
var idcard = document.getElementsByName("idcard")[0];
// 判斷身份證號是不是空
if(trim(idcard.value) == "") {
return;
}
// 判斷是否是正確的身份證號
if(!IDCard_validate("idcard")) {
idcard.style.backgroundColor = "#F08080";
idcard.focus();
return false;
}
var year, month,date,sex;
var idcardVal = idcard.value;
// 身份證為15位
if(idcardVal.length == 15) {
year = idcardVal.substring(6,8);
month = idcardVal.substring(8,10);
date = idcardVal.substring(10,12);
sex = idcardVal.substring(14,1);
}
// 身份證為18位
if(idcardVal.length == 18) {
year = idcardVal.substring(6,10);
month = idcardVal.substring(10,12);
date = idcardVal.substring(12,14);
sex = idcardVal.substring(16,1);
}
// 出生日期
$("#birthday").val(year+"-"+month+"-"+date);
//$('input[name="birthday"]').attr("value", year + "-" + month + "-" + date);
// 性別
if(sex%2 == 0) {
document.getElementById("sex女").checked = true;
} else {
document.getElementById("sex男").checked = true;
}
}
其中:document.getElementById("sex女") 能夠取到radion的key,給其屬性賦值。