rquiredfieldvalidation を使用した asp.net ページにリストボックスがあります。問題は、リスト ボックスが特定のドロップダウン選択で満たされている場合です。その場合、メンバーは自動的に選択されません。保存をクリックすると、空として扱われ、検証が引き続き表示されます。
1 つのメンバーを明示的に選択した場合にのみ、検証が行われ、保存することができます。
保存ボタンの OnCLientClick で最初のメンバーを自動的に選択するために JavaScript 関数を使用しようとしましたが、別のリストボックスからこのリストボックスにメンバーを移動すると、既にメンバーが選択されているという問題があります。その後、関数呼び出しは別のメンバーを選択します。 2 つが選択され、その場合はエラーになります。
使用される JavaScript 関数は次のとおりです。
function FunSelect()
{
var objRequiredFunctionalities = document
.getElementById("<%=lbCurrentFunc.ClientID%>");
if (objRequiredFunctionalities.selectedIndex > 0 ||
objRequiredFunctionalities.options.length > 0) {
objRequiredFunctionalities.options[0].selected = true;
}
}
これは、あるリストボックスから検証済みのリストボックスにアイテムを移動するためのコードです
function ShiftToRight() {
var objSource = document.getElementById("<%=lbAllFunc.ClientID%>");
var objRequiredFunctionalities = document.getElementById("<%=lbCurrentFunc.ClientID%>");
if (objSource.selectedIndex < 0 || objSource.options.length < 0) {
alert("Select Item in Left List to move.");
return;
}
var flag = 0;
for (var i = 0; i < objSource.options.length; i++) {
if (objSource.options[i].selected) {
var item = objSource.options[i];
i--;
for (var i = 0; i < objRequiredFunctionalities.options.length; i++) {
if (item.value == objRequiredFunctionalities.options[i].value)
flag = 1;
}
if (flag == 0) {
if (navigator.appName == 'Netscape') {
objRequiredFunctionalities.options.add(item);
}
else {
objRequiredFunctionalities.options.appendChild(item);
}
}
else alert("Selected item already exists in the Current Functionalities");
}
}