繁体   English   中英

选择表单选项时创建文本字符串

[英]Create text string while selecting form options

嗨,我有一个创建文件的表单,文件名是从用户的选择中获得的,我猜应该像这里提到的“键入时显示文本”之类的东西 ,但在我的情况下,它不仅是文本框,但也有一些单选按钮。 例如:

文本框:“用户指定的名称”

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>

更新试图找到一种适应此处提到的代码的解决方案我可以设法将前两个元素组成,但是在第三个元素上却不起作用,这就是我所做的:

...
<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>

更新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)如果在第三个广播组中选择的语言与在第一个广播组中选择的语言相同,但是与在第二个广播组中选择的语言相同组,则不会出现括号内的语言。

像这样: 用户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>&nbsp;&nbsp;<span id='name2'></span>-<span id='name3'></span>(<span id='name4'></span>)</p> 

试试这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM