JavaScriptを使用して、フォーム要素(入力ボックスとドロップダウンリスト)の重複値をクラスに基づいて検索しようとしています。これは私が持っているものですが、動作していません。これを行うより良い方法はありますか?私はjavascriptには新しく、これを別の投稿の解決策として見ました。フォーム要素の値をjavascriptを使用してクラス別に検索する
EDIT:内部関数のみが呼び出されません。私がそれらを壊すと、彼らは呼び出される。どうしてこれなの?
<%@ 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" />
私はこれらをインポートしています:
<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>
問題は何ですか? .eachの後に最初の内部関数の中にブレークポイントを置いていますが、決してそこには入りません。
おかげ
「checkForDuplicates」が呼び出されていますか? 'class = 'class_name''という要素を持っていますか? – ray
@ray "onclick"で呼び出すサブミットボタンがあり、 "class_name"の要素があります。これは、 "var hadDuplicates = false"のブレークポイントがヒットしているために呼び出されますが、それを超えるものはありません。 – Seephor
この種のコードはひどいです。人々はどのようにそのような混乱が好きですか? – reuns