1. 程式人生 > >js 控制 的選中

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,給其屬性賦值。