by Anonymous » 10 Apr 2025, 10:16
Ich versuche, ein Webformular zu erstellen, in dem ein Benutzer einige Dropdown -Informationen verwendet, und dann wird ein Container angezeigt, und der Benutzer muss eine der beiden Funkoptionen aus auswählen. Die Anzahl der Platzhalter, die geliefert werden, hängt also von den Einträgen in der Datenbank ab. Ich habe 3-4 Optionen ausprobiert, aber keiner von ihnen scheint zu funktionieren. Ende unter Verwendung einer rekursiven Kontrollmethode für Radios. Nichts scheint zu funktionieren. < /P>
Code: Select all
int status = hiddenStatus.Value == "1" ? 1 : 0;
string groupName = toolName;
RadioButton okButton = new RadioButton
{
ID = "RadioButtonOk_" + toolName,
CssClass = "RadioButtonOk",
GroupName = groupName,
Text = "OK"
};
okButton.Attributes.Add("data-tool", toolName);
RadioButton nokButton = new RadioButton
{
ID = "RadioButtonNok_" + toolName,
CssClass = "RadioButtonNok",
GroupName = groupName,
Text = "NOK"
};
nokButton.Attributes.Add("data-tool", toolName);
Panel okPanel = new Panel { CssClass = "radio-button-wrapper" };
okPanel.Controls.Add(okButton);
Panel nokPanel = new Panel { CssClass = "radio-button-wrapper" };
nokPanel.Controls.Add(nokButton);
Panel radioPanel = new Panel { CssClass = "radio-buttons" };
radioPanel.Controls.Add(okPanel);
radioPanel.Controls.Add(nokPanel);
Panel detailsPanel = new Panel { CssClass = "tool-details" };
detailsPanel.Controls.Add(toolNameLabel);
detailsPanel.Controls.Add(header);
detailsPanel.Controls.Add(description);
detailsPanel.Controls.Add(radioPanel);
groupPanel.Controls.Add(image);
groupPanel.Controls.Add(detailsPanel);
ToolContainer.Controls.Add(groupPanel);
function validateInspection() {
var toolGroups = {};
var radios = document.querySelectorAll("input[type='radio']");
var nokSelected = false;
for (var i = 0; i < radio.length; i++) {
var group = radios[i].getAttribute("data-tool");
if (!group) continue;
if (!toolGroups[group]) {
toolGroups[group] = { ok: false, nok: false, selected: false };
}
if (radios[i].checked) {
toolGroups[group].selected = true;
if (radios[i].value.toUpperCase() == "NOK" || radios[i].id.toUpperCase().indexOf("NOK") !== -1) {
nokSelected = true;
}
}
}
}
var allSelected = true;
for (var key in toolGroups) {
if (!toolGroups[key].selected) {
allSelected = false;
break;
}
}
if (!allSelected) {
alert("Please select OK or NOK for every tool");
return false;
}
var statusField = document.getElementById("");
if (statusField) {
statusField.value = nokSelected ? "1" : "0";
}
return true;
}
Ich versuche, ein Webformular zu erstellen, in dem ein Benutzer einige Dropdown -Informationen verwendet, und dann wird ein Container angezeigt, und der Benutzer muss eine der beiden Funkoptionen aus auswählen. Die Anzahl der Platzhalter, die geliefert werden, hängt also von den Einträgen in der Datenbank ab. Ich habe 3-4 Optionen ausprobiert, aber keiner von ihnen scheint zu funktionieren. Ende unter Verwendung einer rekursiven Kontrollmethode für Radios. Nichts scheint zu funktionieren. < /P>
[code]int status = hiddenStatus.Value == "1" ? 1 : 0;
string groupName = toolName;
RadioButton okButton = new RadioButton
{
ID = "RadioButtonOk_" + toolName,
CssClass = "RadioButtonOk",
GroupName = groupName,
Text = "OK"
};
okButton.Attributes.Add("data-tool", toolName);
RadioButton nokButton = new RadioButton
{
ID = "RadioButtonNok_" + toolName,
CssClass = "RadioButtonNok",
GroupName = groupName,
Text = "NOK"
};
nokButton.Attributes.Add("data-tool", toolName);
Panel okPanel = new Panel { CssClass = "radio-button-wrapper" };
okPanel.Controls.Add(okButton);
Panel nokPanel = new Panel { CssClass = "radio-button-wrapper" };
nokPanel.Controls.Add(nokButton);
Panel radioPanel = new Panel { CssClass = "radio-buttons" };
radioPanel.Controls.Add(okPanel);
radioPanel.Controls.Add(nokPanel);
Panel detailsPanel = new Panel { CssClass = "tool-details" };
detailsPanel.Controls.Add(toolNameLabel);
detailsPanel.Controls.Add(header);
detailsPanel.Controls.Add(description);
detailsPanel.Controls.Add(radioPanel);
groupPanel.Controls.Add(image);
groupPanel.Controls.Add(detailsPanel);
ToolContainer.Controls.Add(groupPanel);
function validateInspection() {
var toolGroups = {};
var radios = document.querySelectorAll("input[type='radio']");
var nokSelected = false;
for (var i = 0; i < radio.length; i++) {
var group = radios[i].getAttribute("data-tool");
if (!group) continue;
if (!toolGroups[group]) {
toolGroups[group] = { ok: false, nok: false, selected: false };
}
if (radios[i].checked) {
toolGroups[group].selected = true;
if (radios[i].value.toUpperCase() == "NOK" || radios[i].id.toUpperCase().indexOf("NOK") !== -1) {
nokSelected = true;
}
}
}
}
var allSelected = true;
for (var key in toolGroups) {
if (!toolGroups[key].selected) {
allSelected = false;
break;
}
}
if (!allSelected) {
alert("Please select OK or NOK for every tool");
return false;
}
var statusField = document.getElementById("");
if (statusField) {
statusField.value = nokSelected ? "1" : "0";
}
return true;
}
[/code]