我有一个简单的表格,希望在第一个文本框中输入名称来替换选择框中的文本[NAME HERE],该文本已经输出到第三个框中。
$('select[name=phrase]').change(function() {
$('textarea[name=line]').val($(this).val());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- start form -->
<form action="index.php" method="POST" id="myForm">
<div class="well">
<div class="form-group">
<label>Client's Name or Animal </label>
<input type="text" class="form-control" name="name" id="name" placeholder="Example: John Doe">
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Select Phrase or Enter Custom Text Below</label>
<select class="form-control" id="phrase" name="phrase">
<option>Please Select</option>
<option>Custom Phrase [NAME HERE] 1</option>
<option>Custom Phrase [NAME HERE] 2</option>
<option>Custom Phrase [NAME HERE] 3</option>
<option>Custom Phrase [NAME HERE] 4</option>
<option>Custom Phrase [NAME HERE] 5</option>
</select>
</div>
<div class="form-group">
<label>Custom Word(s), Sentence or Paragraph</label>
<textarea rows="4" class="form-control" id="line" name="line" placeholder="Example: I MISS YOU"></textarea>
<span class="help-block" style="color: red;"><em>500 Words MAX</em></span>
</div>
答案 0 :(得分:0)
您可以使用以下内容:
示例1:这将更改包含[NAME HERE]
$("#name").change(function() {
var opt = $("#phrase option:contains(\\[NAME HERE\\])").first()
if (opt) {
$(opt).text($(opt).text().replace("[NAME HERE]", $(this).val()))
}
$(this).val("")
});
工作示例
$('select[name=phrase]').change(function() {
$('textarea[name=line]').val($(this).val());
});
$("#name").change(function() {
var opt = $("#phrase option:contains(\\[NAME HERE\\])").first()
if (opt) {
$(opt).text($(opt).text().replace("[NAME HERE]", $(this).val()))
}
$(this).val("")
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- start form -->
<form action="index.php" method="POST" id="myForm">
<div class="well">
<div class="form-group">
<label>Client's Name or Animal </label>
<input type="text" class="form-control" name="name" id="name" placeholder="Example: John Doe">
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Select Phrase or Enter Custom Text Below</label>
<select class="form-control" id="phrase" name="phrase">
<option>Please Select</option>
<option>Custom Phrase [NAME HERE] 1</option>
<option>Custom Phrase [NAME HERE] 2</option>
<option>Custom Phrase [NAME HERE] 3</option>
<option>Custom Phrase [NAME HERE] 4</option>
<option>Custom Phrase [NAME HERE] 5</option>
</select>
</div>
<div class="form-group">
<label>Custom Word(s), Sentence or Paragraph</label>
<textarea rows="4" class="form-control" id="line" name="line" placeholder="Example: I MISS YOU"></textarea>
<span class="help-block" style="color: red;"><em>500 Words MAX</em></span>
</div>
Example2这将添加具有值的新option
$("#name").change(function() {
$("#phrase").append("<option>Custom Phrase " + $(this).val() + " 1</option>");
$(this).val("")
});
工作示例
$('select[name=phrase]').change(function() {
$('textarea[name=line]').val($(this).val());
});
$("#name").change(function() {
$("#phrase").append("<option>Custom Phrase " + $(this).val() + " 1</option>");
$(this).val("")
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- start form -->
<form action="index.php" method="POST" id="myForm">
<div class="well">
<div class="form-group">
<label>Client's Name or Animal </label>
<input type="text" class="form-control" name="name" id="name" placeholder="Example: John Doe">
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Select Phrase or Enter Custom Text Below</label>
<select class="form-control" id="phrase" name="phrase">
<option>Please Select</option>
</select>
</div>
<div class="form-group">
<label>Custom Word(s), Sentence or Paragraph</label>
<textarea rows="4" class="form-control" id="line" name="line" placeholder="Example: I MISS YOU"></textarea>
<span class="help-block" style="color: red;"><em>500 Words MAX</em></span>
</div>
答案 1 :(得分:0)
您可以使用String.replace
c1 c4 cols.c2 cols.c3
0 10 41 20 str1
1 11 42 20 str2
2 12 43 20 str3
pd.DataFrame
答案 2 :(得分:0)
更改name
元素后,您需要遍历每个option
元素,并用[NAME HERE]
的值替换文本的name
部分元素。
注释(仅供参考):
name
或id
的"name"
,因为name
是window
对象的Global属性
并将其与HTML元素一起使用可能会导致某些问题
边缘案例。id
指定给您,因此只需将其用作您的
jQuery选择器--输入更少,效果更好。label
元素。这本来是一个
表单字段的标题,您可以通过以下方式将其“连接”到字段
向其中添加一个值为for
的{{1}}属性
表单字段是它的标签,或者您可以嵌套它的表单字段
id
元素本身内的标签。您确实有label
属性是在第二个属性上设置的,但是您没有
for
设置正确。标签对用户非常重要
可访问性,因此您在使用它们时要格外小心。for
,click()
等)。他们现在推荐
使用on()
方法进行事件绑定(如下所示)。change()
可能是因为它会产生斜体文本。但是,真正的原因是
使用该元素是为了传达应解释的内容
以“其他声音或心情”陈述-好像是
有人说。对于所有视觉样式,请使用CSS。
<em>
$('#userName').on("change", function() {
// Loop over the option elements
$("#phrase > option").each(function(index, element){
// Set the text of the option to an adjusted string
$(element).text($(element).text().replace("[NAME HERE]", $("#userName").val()));
});
});
$('#phrase').on("change", function() {
$('#line').val($(this).val());
});
.emphasized { color:red; font-style:italic; }
答案 3 :(得分:0)
您可以改为在name
输入框中查找更改,然后在确实发生更改时获取名称,并将所有选项替换为使用.replace
和.text
给出的名称:
$('#name').change(function() {
const name = $(this).val();
$('select[name=phrase] > option').each(function() {
$(this).text((_, txt) => txt.replace('[NAME HERE]', name));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- start form -->
<form action="index.php" method="POST" id="myForm">
<div class="well">
<div class="form-group">
<label>Client's Name or Animal </label>
<input type="text" class="form-control" name="name" id="name" placeholder="Example: John Doe">
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Select Phrase or Enter Custom Text Below</label>
<select class="form-control" id="phrase" name="phrase">
<option>Please Select</option>
<option>Custom Phrase [NAME HERE] 1</option>
<option>Custom Phrase [NAME HERE] 2</option>
<option>Custom Phrase [NAME HERE] 3</option>
<option>Custom Phrase [NAME HERE] 4</option>
<option>Custom Phrase [NAME HERE] 5</option>
</select>
</div>
<div class="form-group">
<label>Custom Word(s), Sentence or Paragraph</label>
<textarea rows="4" class="form-control" id="line" name="line" placeholder="Example: I MISS YOU"></textarea>
<span class="help-block" style="color: red;"><em>500 Words MAX</em></span>
</div>
答案 4 :(得分:0)
稍微复杂些,但是此解决方案允许实时更新选择框。这可以通过以下方式进行:
// move content from select into textarea
$('select[name="phrase"]').change(function() {
$('textarea[name="line"]').val($(this).val());
});
// realtime update select based upon name
(function () {
var $input = $('#name'),
$select = $('#phrase'),
$optionTemplates = $select.find('option');
$input.keyup(function () {
var $oldOptions = $select.find('option'),
$newOptions = $optionTemplates.clone().each(function () {
this.text = this.text.replace('[NAME HERE]', $input.val());
}),
newValue = $newOptions[$select.prop('selectedIndex')].text;
$oldOptions.remove();
$newOptions.appendTo($select);
$select.val(newValue);
}).trigger('keyup');
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- start form -->
<form action="index.php" method="POST" id="myForm">
<div class="well">
<div class="form-group">
<label>Client's Name or Animal </label>
<input type="text" class="form-control" name="name" id="name" placeholder="Example: John Doe">
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Select Phrase or Enter Custom Text Below</label>
<select class="form-control" id="phrase" name="phrase">
<option>Please Select</option>
<option>Custom Phrase [NAME HERE] 1</option>
<option>Custom Phrase [NAME HERE] 2</option>
<option>Custom Phrase [NAME HERE] 3</option>
<option>Custom Phrase [NAME HERE] 4</option>
<option>Custom Phrase [NAME HERE] 5</option>
</select>
</div>
<div class="form-group">
<label>Custom Word(s), Sentence or Paragraph</label>
<textarea rows="4" class="form-control" id="line" name="line" placeholder="Example: I MISS YOU"></textarea>
<span class="help-block" style="color: red;"><em>500 Words MAX</em></span>
</div>