选择表单选项时创建文本字符串
Create text string while selecting form options
你好,我有一个创建文件的表格,文件名是从用户所做的选择中获得的,我想它应该像 "display text as you type" 提到的 here,但是在我的情况不仅是文本框,还有一些单选按钮。例如:
文本框:"Name given by User"
radio1: sp (已选择), en, de
radio2: sp, en (已选择), de
radio3:sp(已选择),en,de
结果名称:用户西班牙语-英语 (sp) 给出的名称
如您所见,两种选定语言的名称添加了一个短划线链接到用户给出的名称,最后在第三个单选组中选择的语言的 iso 代码添加在括号之间。
我在这里添加我在表单中使用的代码:
<form name="bilingual" action="bilingual.php" method="post">
<p><input type="text" name="corpustitle" placeholder="Corpus name" required></p>
<table>
<tr>
<th>Origin language</th>
<th>Target language</th>
<th>Language to index first</th>
</tr>
<tr>
<td>
<label><input type="radio" name="lang_or" value="de">German</label>
<label><input type="radio" name="lang_or" value="en">English</label>
<label><input type="radio" name="lang_or" value="ca">Catalan</label>
<label><input type="radio" name="lang_or" value="es">Spanish</label>
<label><input type="radio" name="lang_or" value="fr">French</label>
<label><input type="radio" name="lang_or" value="it">Italian</label>
<label><input type="radio" name="lang_or" value="pt">Portugues</label>
</td>
<td>
<label><input type="radio" name="lang_tg" value="de">German</label>
<label><input type="radio" name="lang_tg" value="en">English</label>
<label><input type="radio" name="lang_tg" value="ca">Catalan</label>
<label><input type="radio" name="lang_tg" value="es">Spanish</label>
<label><input type="radio" name="lang_tg" value="fr">French</label>
<label><input type="radio" name="lang_tg" value="it">Italian</label>
<label><input type="radio" name="lang_tg" value="pt">Portugues</label>
</td>
<td>
<label><input type="radio" name="language" value="de">German</label>
<label><input type="radio" name="language" value="en">English</label>
<label><input type="radio" name="language" value="ca">Catalan</label>
<label><input type="radio" name="language" value="es">Spanish</label>
<label><input type="radio" name="language" value="fr">French</label>
<label><input type="radio" name="language" value="it">Italian</label>
<label><input type="radio" name="language" value="pt">Portugues</label>
</td>
</tr>
</table>
<p>Generated name: **HERE THE USER SHOULD BE ABLE TO SEE THE RESULTING NAME BEFORE SUBMITING THE FORM**</p>
<p><input type="submit" value="Create corpus"></p>
更新
试图找到一个解决方案,以适应提到的代码 here 我可以设法组合前两个元素,但在第三个和第四个元素上它不起作用,这就是我所做的:
...
<p><input type="text" name="corpustitle" id="name1" placeholder="Corpus name" required></p>
...
<tr>
<td>
<label><input type="radio" name="lang_or" id="name2" value="de">German</label>
<label><input type="radio" name="lang_or" id="name2" value="en">English</label>
...
<td>
<label><input type="radio" name="lang_tg" id="name3" value="de">German</label>
<label><input type="radio" name="lang_tg" id="name3" value="en">English</label>
.....
<td>
<label><input type="radio" name="language" id="name4" value="de">German</label>
<label><input type="radio" name="language" id="name4" value="en">English</label>
UPDATE 2(抱歉,我确定我已经添加了我想出的代码,无论如何,就在这里)
<script>
$('#name1').keyup(function() {
$('#name_1').html($(this).val());
});
$('#name2').click(function() {
$('#name_2').html($(this).val());
});
$('#name3').click(function() {
$('#name_3').html($(this).val());
});
$('#name4').click(function() {
$('#name_4').html($(this).val());
});
</script>
....
<p>Generated name: <span id='name_1'></span><span id='name_2'></span>-<span id='name_3'></span>(<span id='name_4'></span>)</p>
这样我可以得到:用户给定的名字es - (es)
如果第三个radio组选择的语言和第一个radio组选择的语言相同,但是如果和第二个radio组选择的语言相同,则括号内的语言不会出现..
像这样:用户给的名字es - ()
如您所见,第二个和第三个单选选项没有显示...
$('#name1').on('input',function() {
$('#name_1').html($(this).val());
});
$('input[type=radio]').on('change',function(){
var id=$(this).attr('id');
$('span[id='+id+']').text($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><input type="text" name="corpustitle" id="name1" placeholder="Corpus name" required></p>
<tr>
<td>
<label><input type="radio" name="lang_or" id="name2" value="de">German</label>
<label><input type="radio" name="lang_or" id="name2" value="en">English</label>
...
<td>
<label><input type="radio" name="lang_tg" id="name3" value="de">German</label>
<label><input type="radio" name="lang_tg" id="name3" value="en">English</label>
.....
<td>
<label><input type="radio" name="language" id="name4" value="de">German</label>
<label><input type="radio" name="language" id="name4" value="en">English</label>
<p>Generated name: <span id='name_1'></span> <span id='name2'></span>-<span id='name3'></span>(<span id='name4'></span>)</p>
试试这个。
你好,我有一个创建文件的表格,文件名是从用户所做的选择中获得的,我想它应该像 "display text as you type" 提到的 here,但是在我的情况不仅是文本框,还有一些单选按钮。例如:
文本框:"Name given by User"
radio1: sp (已选择), en, de
radio2: sp, en (已选择), de
radio3:sp(已选择),en,de
结果名称:用户西班牙语-英语 (sp) 给出的名称
如您所见,两种选定语言的名称添加了一个短划线链接到用户给出的名称,最后在第三个单选组中选择的语言的 iso 代码添加在括号之间。
我在这里添加我在表单中使用的代码:
<form name="bilingual" action="bilingual.php" method="post">
<p><input type="text" name="corpustitle" placeholder="Corpus name" required></p>
<table>
<tr>
<th>Origin language</th>
<th>Target language</th>
<th>Language to index first</th>
</tr>
<tr>
<td>
<label><input type="radio" name="lang_or" value="de">German</label>
<label><input type="radio" name="lang_or" value="en">English</label>
<label><input type="radio" name="lang_or" value="ca">Catalan</label>
<label><input type="radio" name="lang_or" value="es">Spanish</label>
<label><input type="radio" name="lang_or" value="fr">French</label>
<label><input type="radio" name="lang_or" value="it">Italian</label>
<label><input type="radio" name="lang_or" value="pt">Portugues</label>
</td>
<td>
<label><input type="radio" name="lang_tg" value="de">German</label>
<label><input type="radio" name="lang_tg" value="en">English</label>
<label><input type="radio" name="lang_tg" value="ca">Catalan</label>
<label><input type="radio" name="lang_tg" value="es">Spanish</label>
<label><input type="radio" name="lang_tg" value="fr">French</label>
<label><input type="radio" name="lang_tg" value="it">Italian</label>
<label><input type="radio" name="lang_tg" value="pt">Portugues</label>
</td>
<td>
<label><input type="radio" name="language" value="de">German</label>
<label><input type="radio" name="language" value="en">English</label>
<label><input type="radio" name="language" value="ca">Catalan</label>
<label><input type="radio" name="language" value="es">Spanish</label>
<label><input type="radio" name="language" value="fr">French</label>
<label><input type="radio" name="language" value="it">Italian</label>
<label><input type="radio" name="language" value="pt">Portugues</label>
</td>
</tr>
</table>
<p>Generated name: **HERE THE USER SHOULD BE ABLE TO SEE THE RESULTING NAME BEFORE SUBMITING THE FORM**</p>
<p><input type="submit" value="Create corpus"></p>
更新 试图找到一个解决方案,以适应提到的代码 here 我可以设法组合前两个元素,但在第三个和第四个元素上它不起作用,这就是我所做的:
...
<p><input type="text" name="corpustitle" id="name1" placeholder="Corpus name" required></p>
...
<tr>
<td>
<label><input type="radio" name="lang_or" id="name2" value="de">German</label>
<label><input type="radio" name="lang_or" id="name2" value="en">English</label>
...
<td>
<label><input type="radio" name="lang_tg" id="name3" value="de">German</label>
<label><input type="radio" name="lang_tg" id="name3" value="en">English</label>
.....
<td>
<label><input type="radio" name="language" id="name4" value="de">German</label>
<label><input type="radio" name="language" id="name4" value="en">English</label>
UPDATE 2(抱歉,我确定我已经添加了我想出的代码,无论如何,就在这里)
<script>
$('#name1').keyup(function() {
$('#name_1').html($(this).val());
});
$('#name2').click(function() {
$('#name_2').html($(this).val());
});
$('#name3').click(function() {
$('#name_3').html($(this).val());
});
$('#name4').click(function() {
$('#name_4').html($(this).val());
});
</script>
....
<p>Generated name: <span id='name_1'></span><span id='name_2'></span>-<span id='name_3'></span>(<span id='name_4'></span>)</p>
这样我可以得到:用户给定的名字es - (es) 如果第三个radio组选择的语言和第一个radio组选择的语言相同,但是如果和第二个radio组选择的语言相同,则括号内的语言不会出现..
像这样:用户给的名字es - ()
如您所见,第二个和第三个单选选项没有显示...
$('#name1').on('input',function() {
$('#name_1').html($(this).val());
});
$('input[type=radio]').on('change',function(){
var id=$(this).attr('id');
$('span[id='+id+']').text($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><input type="text" name="corpustitle" id="name1" placeholder="Corpus name" required></p>
<tr>
<td>
<label><input type="radio" name="lang_or" id="name2" value="de">German</label>
<label><input type="radio" name="lang_or" id="name2" value="en">English</label>
...
<td>
<label><input type="radio" name="lang_tg" id="name3" value="de">German</label>
<label><input type="radio" name="lang_tg" id="name3" value="en">English</label>
.....
<td>
<label><input type="radio" name="language" id="name4" value="de">German</label>
<label><input type="radio" name="language" id="name4" value="en">English</label>
<p>Generated name: <span id='name_1'></span> <span id='name2'></span>-<span id='name3'></span>(<span id='name4'></span>)</p>
试试这个。