Ich versuche, JavaScript zu verwenden, um doppelte Werte in Formularelementen (Eingabefelder und Dropdown-Menüs) basierend auf Klasse zu finden. Das habe ich, aber es funktioniert nicht. Gibt es einen besseren Weg, dies zu tun? Ich bin neu in Javascript und sah dies als eine Lösung für einen anderen Beitrag.Suchen doppelte Werte in Formularelementen nach Klasse mit JavaScript
EDIT: Nur die inneren Funktionen werden nicht aufgerufen. Wenn ich sie austeile, werden sie angerufen. Warum ist das?
<%@ taglib prefix="s" uri="/struts-tags"%>
<s:include value="Header.jsp">
<s:param name="pageScript">
<script type="text/javascript">
function checkForDuplicates() {
var hasDuplicates = false;
$('.class_name').each(function() {
var inputsWithSameValue = $(this).val();
hasDuplicates = $('.class_name').not(this).filter(function() {
return $(this).val() === inputsWithSameValue;
}).length > 0;
if (hasDuplicates){
alert("cannot have duplicates")
}
});
}
</script>
</s:param>
</s:include>
<div id="container-content">
<div id="content">
<s:form action="someAction" theme="simple" method="get" id="theForm">
<s:textfield theme="simple" class="class_name"/>
<s:textfield theme="simple" class="class_name" />
<s:select headerKey="" headerValue="Select Value"
list="values" listKey="value" class="class_name" size="1"/>
<s:submit action="" value="Save" onclick="return checkForDuplicates()"/>
</s:form>
<%-- end content --%>
</div>
<%-- end container-content --%>
</div>
<s:include value="Footer.jsp" />
Ich importieren diese:
<script src="scripts/jquery-1.4-min.js"></script>
<script src="scripts/jquery.maskedinput.min.js" type="text/javascript"></script>
<script src="scripts/jquery.supertextarea.min.js" type="text/javascript"></script>
Was ist das Problem? Ich platziere einen Breakpoint innerhalb der ersten inneren Funktion nach der .each, aber es geht nie da hinein.
Dank
Ist 'checkForDuplicates' aufgerufen wird? Haben Sie Elemente, deren 'class = 'class_name'? – ray
@ray Ich habe eine Senden-Schaltfläche, die es über "onclick" aufruft, und ich habe Elemente mit "class_name". Es wird aufgerufen, weil der Haltepunkt auf "var hasDuplicates = false" getroffen wird, aber nichts darüber hinaus. – Seephor
Diese Art von Code ist einfach schrecklich. Wie können die Menschen so ein Durcheinander mögen? – reuns