首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于选择框选择定义隐藏字段值

基于选择框选择定义隐藏字段值
EN

Stack Overflow用户
提问于 2018-08-22 03:20:44
回答 2查看 47关注 0票数 0

是否有一种jQuery方法可以使用选择框中的“开始于”将变量传递到隐藏字段?这是目前为止的脚本,但我需要它只查找第一个字母,真的。

例如,如果用户选择“键盘-声学钢琴”,我们需要在隐藏字段"referralCode“中传递"KeyboardMag”。这是我到目前为止所知道的:

代码语言:javascript
复制
$( document ).ready(function() {
var refcode={
      Guitars     : "GuitarsMag",
      Keyboards   : "KeyboardMag",
      Drums       : "DrumMag",
      Microphones : "MusicMag"
}
$("#productsMusical").change(function(e){ 
      $('[name="referralCode"]').val(  refcode[ $(this).val() ] )
})
});

<input name="referralCode" value="" id="referralCode" type="hidden">

<select id="productsMusical" name="productsMusical">
  <option value="" selected="selected">--Please Select--</option>
  <option value="Guitars - Acoustic">Guitars - Acoustic</option>
  <option value="Guitars - Electric">Guitars - Electric</option>
  <option value="Guitars - Bass">Guitars - Bass</option>
  <option value="Keyboards - Acoustic Piano">Keyboards - Acoustic Piano</option>
  <option value="Keyboards - Digital Piano">Keyboards - Digital Piano</option>
  <option value="Keyboards - Synth">Keyboards - Synth</option>
  <option value="Drums - Acoustic">Drums - Acoustic</option>
  <option value="Drums - Electric">Drums - Electric</option>
  <option value="Drums - Band">Drums - Band</option>
  <option value="Microphones - Vocal">Microphones - Vocal</option>
  <option value="Microphones - Vocal Headset">Microphones - Vocal Headset</option>
  <option value="Microphones - Instrument">Microphones - Instrument</option>
</select>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-22 03:27:50

你可以用‘-’来拆分这个值,因为这似乎是你的下拉值的一个统一部分。

代码语言:javascript
复制
$(document).ready(function() {
  var refcode = {
    Guitars: "GuitarsMag",
    Keyboards: "KeyboardMag",
    Drums: "DrumMag",
    Microphones: "MusicMag"
  }
  
  $("#productsMusical").change(function(e) {
    var [ refferalCode, other ] = e.target.value.split(' - ');
    
    if ( e.target.value ) {
      $('#referralCode').val(refcode[refferalCode]);
    } else {
      $('#referralCode').val('');
    }
  })
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="referralCode" value="" id="referralCode">

<select id="productsMusical" name="productsMusical">
  <option value="" selected="selected">--Please Select--</option>
  <option value="Guitars - Acoustic">Guitars - Acoustic</option>
  <option value="Guitars - Electric">Guitars - Electric</option>
  <option value="Guitars - Bass">Guitars - Bass</option>
  <option value="Keyboards - Acoustic Piano">Keyboards - Acoustic Piano</option>
  <option value="Keyboards - Digital Piano">Keyboards - Digital Piano</option>
  <option value="Keyboards - Synth">Keyboards - Synth</option>
  <option value="Drums - Acoustic">Drums - Acoustic</option>
  <option value="Drums - Electric">Drums - Electric</option>
  <option value="Drums - Band">Drums - Band</option>
  <option value="Microphones - Vocal">Microphones - Vocal</option>
  <option value="Microphones - Vocal Headset">Microphones - Vocal Headset</option>
  <option value="Microphones - Instrument">Microphones - Instrument</option>
</select>

票数 2
EN

Stack Overflow用户

发布于 2018-08-22 03:35:00

可以使用本机String.indexOf()方法检查字符串是否包含子字符串。

代码语言:javascript
复制
$( document ).ready(function() {
  var refcode={
      Guitars     : "GuitarsMag",
      Keyboards   : "KeyboardMag",
      Drums       : "DrumMag",
      Microphones : "MusicMag"
  }
  $("#productsMusical").on("change", function(e){
     let hiddenVal = ""; 
      
     // Determine the correct value for the hidden field
     // based on whether the selected option contains the tested string
     // (.indexOf returns -1 when the string can't be found)
     if($("#productsMusical").val().indexOf('Guitars') > -1){
       hiddenVal = "GuitarsMag";
     } else if($("#productsMusical").val().indexOf('Keyboards') > -1){
       hiddenVal = "KeyboardMag";     
     } else if($("#productsMusical").val().indexOf('Drums') > -1){
       hiddenVal = "DrumMag";     
     } else {
       hiddenVal = "MusicMag";     
     }
  
      $('[name="referralCode"]').val(hiddenVal);
      console.log($('[name="referralCode"]').val());
  });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="referralCode" id="referralCode" type="hidden">

<select id="productsMusical" name="productsMusical">
  <option value="" selected="selected">--Please Select--</option>
  <option value="Guitars - Acoustic">Guitars - Acoustic</option>
  <option value="Guitars - Electric">Guitars - Electric</option>
  <option value="Guitars - Bass">Guitars - Bass</option>
  <option value="Keyboards - Acoustic Piano">Keyboards - Acoustic Piano</option>
  <option value="Keyboards - Digital Piano">Keyboards - Digital Piano</option>
  <option value="Keyboards - Synth">Keyboards - Synth</option>
  <option value="Drums - Acoustic">Drums - Acoustic</option>
  <option value="Drums - Electric">Drums - Electric</option>
  <option value="Drums - Band">Drums - Band</option>
  <option value="Microphones - Vocal">Microphones - Vocal</option>
  <option value="Microphones - Vocal Headset">Microphones - Vocal Headset</option>
  <option value="Microphones - Instrument">Microphones - Instrument</option>
</select>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51955360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档