<form name="Form1" onsubmit="return false;" action="">
<b><font color="#2C3E60">Name:</font></b><br>
<input type="text" name="name" id="name" placeholder="Name"><br>
<b><font color="#2C3E60">Phone number:</font></b><br>
<input type="text" name="phone" id="phone" placeholder="Phone number"><br>
<b><font color="#2C3E60">Yes/No?:</font></b> <br>
<select type="drop" name="Question1" id="question1">
<option value="Select Yes or No">...</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<br>
<b><font color="#2C3E60">Yes/No 2?:</font></b><br>
<select type="drop" name="Question2" id="question2">
<option value="Select Yes, No or n/a">...</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
<option value="n/a">n/a</option>
</select>
<br>
<b><font color="#2C3E60">Notes:</font></b><br>
<textarea type="textarea" name="Notes" id="notes" placeholder="Problem" cols="70" rows="3"></textarea>
<br>
<b><font color="#2C3E60">Issue:</font></b><br>
<textarea type="textarea" name="Issue" id="issue" placeholder="Issue" cols="70" rows="6"></textarea>
<br>
<b><font color="#2C3E60">Action:</font></b><br>
<textarea type="textarea" name="Action" id="action" placeholder="Action" cols="70" rows="10"></textarea>
<br>
<textarea type="textarea" name="form1output" onclick="this.focus();this.select()" id="output" cols="70" rows="25" placeholder="Output"></textarea>
<br>
<div class="btn-group">
<button value="Combine" onclick="convert()">Combine</button> <br><br>
</div>
<div class="btn-group">
<button type="reset" value="Reset form">Reset form</button> <br><br>
</div>
</form>
<hr>
<form name="Form2" onsubmit="return false;" action="">
<b><font color="#2C3E60">Name:</font></b><br>
<input type="text" name="Name2" id="name2" placeholder="Name"><br>
<b><font color="#2C3E60">Phone Number:</font></b><br>
<input type="text" name="Currentnumber" id="currentnumber" placeholder="Corrent phone number"><br>
<b><font color="#2C3E60">Y or N:</font></b> <br>
<select type="drop" name="YESNO" id="yesno">
<option value="Select Yes or No">...</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<br>
<b><font color="#2C3E60">Did you offer self serve?:</font></b><br>
<select type="drop" name="Selfserve" id="SSO">
<option value="Select Yes, No or n/a">...</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
<option value="n/a">n/a</option>
</select>
<br>
<b><font color="#2C3E60">Problem:</font></b><br>
<textarea type="textarea" name="Problem" id="problem" placeholder="Problem"
cols="70" rows="3"> </textarea>
<br>
<b><font color="#2C3E60">Issue:</font></b><br>
<textarea type="textarea" name="Issue" id="issue2" placeholder="Issue"
cols="70" rows="6"> </textarea>
<br>
<b><font color="#2C3E60">Action:</font></b><br>
<textarea type="textarea" name="Action" id="action2" placeholder="Action"
cols="70" rows="10"> </textarea>
<br>
<textarea type="textarea" name="form2output" id="output2"
onclick="this.focus();this.select()" cols="70" rows="25"
placeholder="Output"></textarea>
<br>
<div class="btn-group">
<button value="Combine" onclick="convert()">Combine</button> <br><br>
</div>
<div class="btn-group">
<button type="reset" value="Reset form">Reset form</button> <br><br>
</div>
</form>
第一个脚本:
<script>
/*Reset command*/
$(document).ready(function(){
$(":reset").css("background-color", "");
});
</script>
<script>
function wordwrap(str, width, brk, cut) {
brk = brk || '\n';
width = width || 60;
cut = cut || false;
if (!str)
return str;
var regex = '.{1,' +width+ '}(\\s|$)' + (cut ? '|.{' +width+ '}|.+$' :
'|\\S+?(\\s|$)');
return str.match( RegExp(regex, 'g') ).join(brk);
}
function convert() {
var name = document.getElementById("name").value;
var phone = document.getElementById("phone").value;
var question1 = document.getElementById("question1").value;
var question2 = document.getElementById("question2").value;
var notes = document.getElementById("notes").value;
var issue = document.getElementById("issue").value;
var action = document.getElementById("action").value;
//input = wordwrap(input, 70, true);
var output = "";
output += "Name: " + name + "\n";
output += "Number: " + phone + "\n";
output += "Question 1?: " + question1 + "\n";
output += "Question 2?: " + question2 + "\n\n";
output += "Notes: " + notes + "\n\n";
output += "Issue: " + issue + "\n\n";
output += "Action: " + action + " ";
document.getElementById("output").value = output;
}
function myFunction(x) {
x.classList.toggle("change");
}
</script>
第二个脚本:
<script>
function wordwrap(str, width, brk, cut) {
brk = brk || '\n';
width = width || 60;
cut = cut || false;
if (!str)
return str;
var regex = '.{1,' +width+ '}(\\s|$)' + (cut ? '|.{' +width+ '}|.+$' :
'|\\S+?(\\s|$)');
return str.match( RegExp(regex, 'g') ).join(brk);
}
function convert() {
var Name2 = document.getElementById(name2").value;
var Currentnumber = document.getElementById("currentnumber").value;
var YESNO = document.getElementById("yesno").value;
var selfserve = document.getElementById("SSO").value;
var problem = document.getElementById("problem").value;
var issue2 = document.getElementById("issue2").value;
var action2 = document.getElementById("action2").value;
//input = wordwrap(input, 70, true);
var output = "";
output += "Name2: " + name2 + "\n";
output += "Current number: " + currentnumber + "\n";
output += "Yes No?: " + yesno + "\n";
output += "Self Serve?: " + selfserve + "\n\n";
output += "Problem: " + problem + "\n\n";
output += "Issue: " + issue2 + "\n\n";
output += "Action: " + action2 + " ";
document.getElementById("output2").value = output2;
}
function myFunction(x) {
x.classList.toggle("change");
}
</script>
我错过了什么?
答案 0 :(得分:0)
最终,问题在于您有两个共享具有相同名称的函数的脚本。但是使用jQuery充分发挥其潜力,可以简化逻辑。
(1)为方便起见,在按钮上添加id
和type="button"
:id
即可快速区分按钮,type="button"
是为了防止表单提交默认情况下。
<button type="button" id="combine1">Combine</button>
<button type="button" id="combine2">Combine</button>
(2)将onclick
事件处理程序附加到按钮
$('#combine1').click(function() {
// get current form
var button = $(this),
form = button.closest('form');
// get field values within current form
var name = form.find("[name=name]").val(),
phone = form.find("[name=phone]").val(),
question1 = form.find("[name=question1]").val(),
question2 = form.find("[name=question2]").val(),
notes = form.find("[name=notes]").val(),
issue = form.find("[name=issue]").val(),
action = form.find("[name=action]").val();
var output = "";
output += "Name: " + name + "\n";
output += "Number: " + phone + "\n";
output += "Question 1?: " + question1 + "\n";
output += "Question 2?: " + question2 + "\n\n";
output += "Notes: " + notes + "\n\n";
output += "Issue: " + issue + "\n\n";
output += "Action: " + action + " ";
form.find("[name=output]").val(output);
});
// same idea as previous one
$('#combine2').click(function() {
var button = $(this),
form = button.closest('form');
var name = form.find("[name=name]").val(),
phone = form.find("[name=phone]").val(),
yesno = form.find("[name=yesno]").val(),
selfserve = form.find("[name=selfserve]").val(),
problem = form.find("[name=problem]").val(),
issue = form.find("[name=issue]").val(),
action = form.find("[name=action]").val();
var output = "";
output += "Name: " + name + "\n";
output += "Phone: " + phone + "\n";
output += "Yes No?: " + yesno + "\n";
output += "Self Serve?: " + selfserve + "\n\n";
output += "Problem: " + problem + "\n\n";
output += "Issue: " + issue + "\n\n";
output += "Action: " + action + " ";
form.find("[name=output]").val(output);
});
其他说明
document.getElementById()
与jQuery完全相同,只需使用$(selector)
即可。 selector
有许多变体,例如#id
,.class
,[name=name]
等
此外,您可以添加selector context来查找元素中的元素,即$("[name=name]", form).val()
与form.find("[name=name]").val()
相同。
为了便于说明,我删除了表单中的ID,并且某些字段在两种表单中共享相同的名称。我通过使用选择器上下文来区分字段的方式。
<强>演示强>
$(function() {
$('#combine1').click(function() {
console.clear();
console.log(this.id);
var button = $(this),
form = button.closest('form');
var name = form.find("[name=name]").val(),
phone = form.find("[name=phone]").val(),
question1 = form.find("[name=question1]").val(),
question2 = form.find("[name=question2]").val(),
notes = form.find("[name=notes]").val(),
issue = form.find("[name=issue]").val(),
action = form.find("[name=action]").val();
var output = "";
output += "Name: " + name + "\n";
output += "Number: " + phone + "\n";
output += "Question 1?: " + question1 + "\n";
output += "Question 2?: " + question2 + "\n\n";
output += "Notes: " + notes + "\n\n";
output += "Issue: " + issue + "\n\n";
output += "Action: " + action + " ";
form.find("[name=output]").val(output);
});
$('#combine2').click(function() {
console.clear();
console.log(this.id);
var button = $(this),
form = button.closest('form');
var name = form.find("[name=name]").val(),
phone = form.find("[name=phone]").val(),
yesno = form.find("[name=yesno]").val(),
selfserve = form.find("[name=selfserve]").val(),
problem = form.find("[name=problem]").val(),
issue = form.find("[name=issue]").val(),
action = form.find("[name=action]").val();
var output = "";
output += "Name: " + name + "\n";
output += "Phone: " + phone + "\n";
output += "Yes No?: " + yesno + "\n";
output += "Self Serve?: " + selfserve + "\n\n";
output += "Problem: " + problem + "\n\n";
output += "Issue: " + issue + "\n\n";
output += "Action: " + action + " ";
form.find("[name=output]").val(output);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- FORM 1 -->
<form name="Form1" action="">
<b><font color="#2C3E60">Name:</font></b><br>
<input type="text" name="name" placeholder="Name"><br>
<b><font color="#2C3E60">Phone number:</font></b><br>
<input type="text" name="phone" placeholder="Phone number"><br>
<b><font color="#2C3E60">Yes/No?:</font></b> <br>
<select type="drop" name="question1">
<option value="Select Yes or No">...</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<br>
<b><font color="#2C3E60">Yes/No 2?:</font></b><br>
<select type="drop" name="question2">
<option value="Select Yes, No or n/a">...</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
<option value="n/a">n/a</option>
</select>
<br>
<b><font color="#2C3E60">Notes:</font></b><br>
<textarea type="textarea" name="notes" placeholder="Problem" cols="70" rows="3"></textarea>
<br>
<b><font color="#2C3E60">Issue:</font></b><br>
<textarea type="textarea" name="issue" placeholder="Issue" cols="70" rows="6"></textarea>
<br>
<b><font color="#2C3E60">Action:</font></b><br>
<textarea type="textarea" name="action" placeholder="Action" cols="70" rows="10"></textarea>
<br>
<textarea type="textarea" name="output" onclick="this.focus();this.select()" cols="70" rows="25" placeholder="Output"></textarea>
<br>
<div class="btn-group">
<button type="button" id="combine1">Combine</button> <br><br>
</div>
<div class="btn-group">
<button type="reset" value="Reset form">Reset form</button> <br><br>
</div>
</form>
<hr>
<!-- FORM 2 -->
<form name="Form2" action="">
<b><font color="#2C3E60">Name:</font></b><br>
<input type="text" name="name" placeholder="Name"><br>
<b><font color="#2C3E60">Phone Number:</font></b><br>
<input type="text" name="phone" placeholder="Corrent phone number"><br>
<b><font color="#2C3E60">Y or N:</font></b> <br>
<select name="yesno">
<option value="Select Yes or No">...</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<br>
<b><font color="#2C3E60">Did you offer self serve?:</font></b><br>
<select name="selfserve">
<option value="Select Yes, No or n/a">...</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
<option value="n/a">n/a</option>
</select>
<br>
<b><font color="#2C3E60">Problem:</font></b><br>
<textarea type="textarea" name="problem" placeholder="Problem" cols="70" rows="3"> </textarea>
<br>
<b><font color="#2C3E60">Issue:</font></b><br>
<textarea type="textarea" name="issue" placeholder="Issue" cols="70" rows="6"> </textarea>
<br>
<b><font color="#2C3E60">Action:</font></b><br>
<textarea type="textarea" name="action" placeholder="Action" cols="70" rows="10"> </textarea>
<br>
<textarea type="textarea" name="output" onclick="this.focus();this.select()" cols="70" rows="25" placeholder="Output"></textarea>
<br>
<div class="btn-group">
<button type="button" id="combine2">Combine</button> <br><br>
</div>
<div class="btn-group">
<button type="reset" value="Reset form">Reset form</button> <br><br>
</div>
</form>