2017-05-08 85 views
0

任何知道如何傳遞a/b/c的值的人。如果選擇是國王,則在不同的文本框中傳遞值b和c。如果皇后將值d,e和f傳遞給同一個文本框。任何人都可以幫助我完成我所需要的功能。JavaScript:分割功能

 <select id="select" name="select" > 
      <option value="">---Please select---</option> 
      <option value="a/b/c">king</option> 
      <option value="d/e/f">queen</option> 
     </select> 

     <input type="text" class="form-control" id="a" name="a" value=a required> 

     <input type="text" class="form-control" id="b" name="b" value=b required> 


     <input type="text" class="form-control" id="c" name="c" value=c required> 
+0

什麼你到底想幹什麼?在請求中傳遞值? –

+0

我想做一個功能,可以拆分值並將其放置到文本框 –

+0

誰將此標記爲與專業服務器或網絡相關的基礎架構管理問題無關?大聲笑! – Chris

回答

1

將onchange事件添加到您選擇的元素;

<select id="select" name="select" onchange="fn()"> 
     <option value="">---Please select---</option> 
     <option value="a/b/c">king</option> 
     <option value="d/e/f">queen</option> 
    </select> 

然後寫下面的JavaScript來實現這一目標:

function fn() { 
    var x = document.getElementById("select").value; 
    var arr_x = x.split('/'); 
    document.getElementById("a").value = arr_x[0]; 
    document.getElementById("b").value = arr_x[1]; 
    document.getElementById("c").value = arr_x[2]; 
} 
+2

請使用'addEventListener'! – Alnitak

+0

感謝ivp你的代碼幫助了我。 –

+0

不客氣... – ivp

0

您可以通過添加一個監聽器,你select組件然後把它的值(在這個例子中「A/B /做到這一點c「或」d/e/f「)。爲了獲得每個單獨的字母,我們在/定界符上使用split(),並用每個字母回退一個數組。

然後我們獲取所有具有form-controlgetElementsByClassName()併爲每個我們通過一個循環,其改變的每個輸入字段與前陣信迭代元素的元素。

document.getElementById('select').onchange = function() { 
 
    var values = this.value.split("/"); 
 
    var elements = document.getElementsByClassName("form-control"); 
 
    for (var i = 0; i < elements.length; i++) { 
 
    elements[i].value = values[i] || ""; 
 
    } 
 
};
<select id="select" name="select"> 
 
    <option value="">---Please select---</option> 
 
    <option value="a/b/c">king</option> 
 
    <option value="d/e/f">queen</option> 
 
</select> 
 

 
<input type="text" class="form-control" id="a" name="a" value=a required> 
 
<input type="text" class="form-control" id="b" name="b" value=b required> 
 
<input type="text" class="form-control" id="c" name="c" value=c required>

0

$('#select').change(function(){ 
 
var ySelectedValue = $(this).val(); 
 
var ySelectedValueSplit = ySelectedValue.split("/"); 
 

 
$('#a').val(ySelectedValueSplit[0]); 
 
$('#b').val(ySelectedValueSplit[1]); 
 
$('#c').val(ySelectedValueSplit[2]); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="select" name="select" > 
 
      <option value="">---Please select---</option> 
 
      <option value="a/b/c">king</option> 
 
      <option value="d/e/f">queen</option> 
 
     </select> 
 

 
     <input type="text" class="form-control" id="a" name="a" value= required> 
 

 
     <input type="text" class="form-control" id="b" name="b" value= required> 
 

 

 
     <input type="text" class="form-control" id="c" name="c" value= required>

+0

你的代碼不起作用,它也是你應該指出的jQuery,因爲OP沒有標記他們的問題。 – Chris