2016-07-05 34 views
-4

我有一个单选按钮形式和两个选择("yourself"/"a colleague")如何更改单选按钮的文本?

在该表格中,我添加了button进行翻译。

当我点击按钮时,我想要改变单选按钮的法语为法语("Vous-même"/"Un collegue")

我只需要让我做出这个改变的jQuery代码行。

我试试这个:

NWF $('#'+UserTypeID).find("input:checked").val("Vous-même"); 更改值,但没有文字。

NWF $('#'+UserTypeID).find("input:checked").text("Vous-même"); 生成错误,因为这条线完全隐藏单选按钮

有人有解决办法吗?

+0

做到这一点你需要与输入,而不是那张标签输入本身。 – gcampbell

+1

无线电输入没有任何文本,因为它是一个空元素,它没有任何结束标记。你可能意思是下面的文本节点**或**相关的无线电标签。但是没有看到任何相关的HTML标记,那么...... –

回答

0

如果你有HTML这样的:

<label for="foo">Foo</label> 
<input type="radio" id="foo" name="type"/> 
<label for="bar">Bar</label> 
<input type="radio" id="bar" name="type"/> 

,那么你可以使用更改文本:

label能够为:

NWF$('#'+UserTypeID).find('[for="foo"]').text("Vous-même"); 
0

可以使用例如这样做改变对应于单选按钮的文本。

data属性保存您必须打开每个按钮单击的数据。

$(document).ready(function(){ 
 
    $('.translate').click(function(){ 
 
    $('input[type=radio][name=person]').each(function(index) { 
 
     var current_element=$(this); 
 
     var done=false; 
 
     var traductions=[current_element.data('traduction-fr'),current_element.data('traduction-en')]; 
 
     var current_value=$("label[for='" +current_element.attr("id")+ "']").text(); 
 
     $.each(traductions, function(index, value) { 
 
      if(current_value!= value && !done){ 
 
       $("label[for='" + current_element.attr("id")+ "']").text(value); done=true; 
 
      } 
 
     }); 
 
    }); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<label for="option1">yourself</label> 
 
    <input type="radio" name="person" id="option1" value="person_1" data-traduction-fr="Vous-même" data-traduction-en="yourself"><br> 
 
    <label for="option2">a colleague</label> 
 
    <input type="radio" name="person" id="option2" value="person_2" data-traduction-fr="Un collegue" data-traduction-en="a colleague"><br> 
 
    <input type="button" value="Translate" class="translate">

0

您可以使用jQuery地图功能

<label for="option1" data-selected="en" data-en="yourself" data-fr="Vous-même">yourself</label> 
<input type="radio" name="person" id="option1"/> 

<label for="option2" data-selected="en" data-en="a colleague" data-fr="Un collegue">a colleague</label> 
<input type="radio" name="person" id="option2"/> 

使用下面的代码

var $labels = $("label[for]"); 
$('input').map(function(){ 
     var label = $labels.filter('[for="'+this.id+'"]'); 
     var lang =label.attr("data-selected"), 
      enText = label.attr("data-en"), 
      frText = label.attr("data-fr"); 
    if("en" == lang){ 
     label.text(frText); 
     label.attr("data-selected", "fr") 
    }else{ 
     label.text(euText); 
     label.attr("data-selected", "en")  
    } 
}); 
相关问题