jquery kullanılarak bir metin dosyasından oluşturulan bir açılır listeden seçilen öğe değerini yakala
Aug 19 2020
Şu gibi birkaç basit kelime içeren bir metin dosyam var: make, this, work.
Metin dosyasını yükleyebilmek ve buradan dinamik bir seçme açılır listesi oluşturabilmek istiyorum. Kullanıcı gönder düğmesine tıkladığında, seçilen öğenin değerini yazdırır.
Kod aşağıdadır, sayfayı kullanıcılara işlemek için tutma çubuğunu kullanıyorum. Kullanıcı gönder düğmesine tıkladığında, neyi seçtiğini görmek için dizine / gösterime gider.
Seçilen seçeneklerin gerçek değerini yazdırmak yerine, değeri değil, seçilen seçeneğin dizinini yazdırır.
<form method="post" action="index/display" id = "first" name="first">
<fieldset>
<div style="display: inline-block; margin-left:10px ">
<legend>Selecting items from text file</legend>
<script type="text/javascript" src="js/jquery.js"></script>
<script>
$.get("js/pytxt.txt", function(data) { /*alert( "Data Loaded: " );*/ var options = data.split(','), $select = $('select#value'); for (var i = 0; i < options.length; i++) { $select.append('<option value="' + i + '">' + options[i] + '</option>"');
console.log ($select)};
});
</script>
<p>
<label></label>
<select id = "value" name="first">
<option selected value="base">Please Select</option>
</select>
</p>
</div>
<p>
<input type="submit">
</p>
</fieldset>
Bu, gönderi işlevi:
app.post('/index/display', (req, res) => {
res.status(200).send('POST works!' + req.body.first);
});
Yanıtlar
1 Liju Aug 19 2020 at 20:43
Lütfen değiştirin:
$select.append('<option value="' + i + '">' + options[i] + '</option>"');
Bu satırla:
$select.append('<option value="' + options[i] + '">' + options[i] + '</option>"');
Bu, sorununuzu çözmelidir.
1 charlietfl Aug 19 2020 at 21:13
Bunu biraz yaparak basitleştirebilirsiniz:
options.forEach(v => $select.append( new Option(v, v)))
Demo:
let options = 'one,two,three,four'.split(','), $select = $('#value'); options.forEach(v => $select.append( new Option(v, v)))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="value"></select>
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı