2014-11-20 80 views
0

我已經爲每個javascript添加了一個元素和文本。有了這個代碼:Javascript:更改文本取決於選擇值

$(document).ready(function() { 
    if ($('welcome_page').length) { 
    $('#my_element').after('<tr><td><td><td id="welcome_message">Welcome to my page</td></td></td</tr>'); 
    } 
}); 

我需要能夠將文本>可喜的變化,以我的<頁取決於在頁面設置語言:

<select id="languages" onchange="submit();"> 
<option value="1" selected="">English</option> 
<option value="2">Spanish</option> 
<option value="3">French</option> 
</select> 

我已經試過這一點,但它不這樣的伎倆:

function langChoice(sel){ 
    var langChange = document.getElementById('languages'); 
    var langOption = document.getElementById('welcome_message'); 
     if (sel.options[sel.selectedIndex].value == "1") { 
     langOption.innerHTML = "Enter price per month"; 
     } 
     else if (sel.options[sel.selectedIndex].value == "2") { 
     langOption.innerHTML = "Enter price per week"; 
     } 
     else if (sel.options[sel.selectedIndex].value == "3") { 
     langOption.innerHTML = "Enter price per day"; 
     } 
     else if (sel.options[sel.selectedIndex].value == "4") { 
     langOption.innerHTML = "Enter for sale hour"; 
     } 

} 
+0

如果你打電話給你?功能 – 2014-11-20 22:55:58

+0

您可以添加一個重新啓動並重現問題嗎? – AlvinJ 2014-11-20 22:56:49

回答

0

我猜...

訪問此JsFiddle

HTML:

<div id="greet"></div> 
<select id="languages"> 
    <option value="en" >English</option> 
    <option value="es" selected>Spanish</option> 
    <option value="fr">French</option> 
</select> 

JS:

var welcome = { 
    en:"English", 
    es:"Espanol", 
    fr:"Francais" 
} 
$(document).ready(function() { 
    $('#greet').html(welcome[$('#languages').val()]); 
}); 

$('#languages').change(function() { 
    $('#greet').html(welcome[$('#languages').val()]); 
}); 
0

也許..

$(document).ready(function() { 
    if ($('welcome_page').length) { 
    $('#my_element').after('<tr><td><td><td id="welcome_message">Welcome to my page</td></td></td</tr>'); 

    langChoice($("#languages")) 

    } 
}); 

我想下拉菜單#語言出現在頁面中;我不是undestand $(「welcome_page」)..也許$(「#welcome_page」)或者你使用一個標籤?

0

OK,然後做一件事打電話給你的提交()函數

的第一線。例如裏面的功能langChoice(SEL): -

function submit() { 
    langChoice($("#languages")); 

    .. your logic .. 
} 
+0

不幸的是我無法修改HTML。這就是爲什麼我使用Javascript – 2014-11-20 23:47:34

0

如果我理解正確:

<div id="welcome_page"> 
    <select id="languages" onchange="submit();"> 
     <option value="1" selected="">English</option> 
     <option value="2">Spanish</option> 
     <option value="3">French</option> 
    </select> 
    <div id="my_element"></div> 
</div> 

$(document).ready(function() { 

    if ($('#welcome_page').length) { 
     $('#my_element').after('<tr><td><td><td id="welcome_message">Welcome to my page</td></td></td</tr>'); 
    } 

$("#languages").on("change",function(){ 
    var Val = $(this).val(); 

    if(Val==1){ 
     $("#welcome_message").html("English"); 
    } 
    else if(Val==2){ 
     $("#welcome_message").html("Spanish"); 
    } 
    else if(Val==3){ 
     $("#welcome_message").html("French"); 
    } 

}); 


}); 

小提琴:http://jsfiddle.net/tufce1yo/

+0

這幾乎是正確的。但新文本應該顯示爲直接(如果它是英文,它應該從一開始就顯示英文而不是原始文本) – 2014-11-20 23:46:09

+0

您將初始文本設置爲英語 - 將其稱爲您的開始語言,然後用戶將其改爲任何他想要的語言上面的工作,如果你想記住更改頁面時的用戶選擇,我曾經通過在PHP中爲每種語言設置會話(使用ajax),當你改變選擇值時,記住它。 – 2014-11-21 00:00:00

+0

您是否可以更新代碼以便直接顯示更改的文本?有時頁面會以法文打開,所以最初的文本根本不應該出現 – 2014-11-21 00:06:39