/ / jsで変更された後、境界線のアウトラインが1秒後に元に戻り続けます-javascript、jquery、html、css、css3

ボーダーアウトラインがjsで変更された後、1秒後に元の状態に戻る-javascript、jquery、html、css、css3

あなたは、この単純だが気が遠くなるような質問で助けていただければ幸いです。

ユーザーがクリックするお問い合わせフォームがあります送信すると、自分でハードコーディングした強力なエラーチェック機能が実行されます。エラーチェックでは、検証テストに合格しなかったすべてのフォーム要素の周囲に赤い境界線が表示され、その後、エラーの場所とエラーの詳細なリストをユーザーに通知するアラートポップアップが表示されます。これは、次の場合を除いてすべて正常に機能します。各フォーム要素の境界線が赤に設定されています。これは、元の境界線の色に奇妙に戻る前に、一瞬だけ機能します。地球上で何が起こっているのでしょうか。何か他のものがあるかのようです。このコードを上書きしますか?

別の問題が発見されました また、すべてのブールチェック変数が真の場合に想定されているようにユーザーに警告しないことも発見しました。これを実行したこともあります。 alert(fnameCheck + ", " + lnameCheck + ", " + emailCheck + ", " + topicCheck + ", " + messageCheck + ", " + termsAndConsCheck); アラートは表示されませんでした。ここで何かが起こっています...そして私はそれがその関数ではないと思います。私は間違っている可能性がありますが、私はこの関数を他の場所で使用し、それは機能しました(チェックするブール変数は少なかったですが)

ここにコードがあります...

<div class="body" style="height:560px"> <!-- This is the body --><br />
<span style="font-size:50px">Contact Us</span><br />
<div style="margin-left:20px; text-align:left">
Please feel free to enter your details below to contact us.<br />
<span style="font-size:14px; color:grey">* = required field</span><br /><br />
<form name="contactForm"> <!-- This is a form -->
First name*:<br />
<input name="fname" type="text"><br />
Last name*:<br />
<input name="lname" type="text"><br />
Email*: <br /><input name="email" type="text"><br /><br />
My comment/ enquiry concerns*:<br />
<select id="topic">
<option value="Select a topic" selected>Select a topic</option>
<option value="Billing Questions">Billing Questions</option>
<option value="Returns/ Exchanges">Returns/ Exchanges</option>
<option value="Website Enquiries">Website Enquiries</option>
<option value="Product Enquiries">Product Enquiries</option>
<option value="Other">Other</option>
</select><br /><br />
Message*:<br /><textarea id="message"></textarea>
<br /><br />
If you"d like to send us a file, you may do so below but ensure that the file is no larger than 50MB.
<br /><input type="file" name="myFile">
<br><br />
You agree to the Privacy Policy (click to confirm)*.
<input name="tandc" type= "checkbox"><br /><br />
<button onclick="submitForm()">Hi</button>
<input type="reset" value="Reset">
</form>
</div>
</div>

ここにすべてのJavascriptがあります(すべては関係ありませんが、ここに問題を引き起こしている何かがあるかもしれません)

<script>
document.getElementById("cover").style.display = "none";
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(";");
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==" ") {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
var username="";
function checkCookie() {
username = getCookie("username");
if (username != "") {
document.getElementById("topnavbar").innerHTML = "Welcome, " + username + ".&nbsp;|&nbsp;";
}
}
checkCookie();

/* THIS IS THE RELEVANT STUFF FROM HERE DOWN TO THE NEXT COMMENT */
var topic = "Select a topic";
document.getElementById("topic").addEventListener("change", function() {
switch(this.value){
case "Select a topic":
topic = "Select a topic"
break;
case "Billing Questions":
topic = "Billing Questions"
break;
case "Returns/ Exchanges":
topic = "Returns/ Exchanges"
break;
case "Website Enquiries":
topic = "Website Enquiries"
break;
case "Product Enquiries":
topic = "Product Enquiries"
break;
case "Other":
topic = "Other"
break;
}
});
function submitForm(){
var firstName = contactForm.fname.value;
var lastName = contactForm.lname.value;
var email = contactForm.email.value;
var message = contactForm.message.value;
var fnameCheck = false;
var lnameCheck = false;
var emailCheck = false;
var topicCheck = false;
var messageCheck = false;
var termsAndConsCheck = false;
var errorMsg = "";
if(isNaN(firstName)&&firstName!=""){
fnameCheck = true;
}else{
fnameCheck = false;
if(fnameCheck == ""){
errorMsg += "First Name - The field is empty n";
}else{
errorMsg += "First Name - Please ensure it contains no numbers or symbols n";
}
}
if(isNaN(lastName)&&lasttName!=""){
lnameCheck = true;
}else{
lnameCheck = false;
if(lnameCheck == ""){
errorMsg += "Last Name - The field is empty n";
}else{
errorMsg += "Last Name - Please ensure it contains no numbers or symbols n";
}
}
if(email.indexOf("@") == -1 || email == ""){
emailCheck == false;
if(email == ""){
errorMsg += "Email - The field is empty n";
}else{
errorMsg += "Email - This is not a valid email addressn";
}
}else{
emailCheck = true;
}
if(topic == "Select a topic"){
topicCheck = false;
errorMsg += "Topic - Please select a topic n";
}else{
topicCheck = true;
}
if(message == ""){
messageCheck = false;
errorMsg += "Message - Please enter a message n";
}else{
messageCheck = true;
}
if(!contactForm.tandc.selected){
termsAndConsCheck = false;
errorMsg += "Terms and Conditions - Please tick the checkbox n";
}else{
termsAndConsCheck = true;
}
if(fnameCheck && lnameCheck && emailCheck && topicCheck && messageCheck && termsAndConsCheck){
alert("form submitted!");
}else{
if(!fnameCheck){
contactForm.fname.style.borderColor = "red";
}
if(!lnameCheck){
contactForm.lname.style.borderColor = "red";
}
if(!emailCheck){
contactForm.email.style.borderColor = "red";
}
if(!topicCheck){
document.getElementById("topic").style.borderColor = "red";
}
if(!messageCheck){
contactForm.message.style.borderColor = "red";
}
if(!termsAndConsCheck){
contactForm.tandc.style.outline = "1px solid red";
}
alert("Please fix the fields listed below... nn" + errorMsg + "nThank you.");
}
}
/* THIS IS THE END OF THE RELEVANT CODE */

</script>
<script type="text/javascript" src="./jquery-2.1.4.min.js"></script>
<script>
$(document).ready(function() {
$("#slider").animate({
"left": $(".item:first").position().left + "px",
"width": $(".item:first").width() + "px"
}, 0);

$(".item").hover(function() {
$("#slider").stop();
$("#slider").animate({
"left": $(this).position().left + "px",
"width": $(this).width() + "px"
}, 500);
});

$(".item").on("mouseout", function() {
$("#slider").stop();
$("#slider").animate({
"left": $("#four").position().left + "px",
"width": $("#four").width() + "px"
}, 500);
});
});
</script>

回答:

回答№1は1

私がする必要があるのは行を変えることだけでした

<button onclick="submitForm()">Hi</button>

<button type="button" onclick="submitForm()">Submit</button>

みんなの助けてくれてありがとう!!!


回答№2の場合は0

私にはそれが機能しているように見えますが、あなたはそうではありませんエラーがある場合にフォームを送信できないようにします。ハイライトが発生し、メッセージボックスがポップアップしますが、フォームが送信され、すべてが失われます。

ボタンを次のように変更します。

<button type="button" onclick="submitForm()">Hi</button>