2016-04-14 4 views
1

Hi arasından seçildiğinde (girişine yazma)değiştirme değeri, bir seçenek seçilmiş

aşağıdaki giriş

<input type="text" class="input-text" value="South Yorkshire" placeholder=" county" name="calc_shipping_state" id="calc_shipping_state"> 

var Ve ben bir için değiştirmek gerekir birkaç seçenekle açılır listeyi seçin. Sorun, girdinin bir veritabanı ile bir doğrulama yapması ve HTML'ye erişimim olmaması. Bu yüzden girdiyi saklıyorum ve seçilen seçenekte girdiye yazmak için jQuery'yi kullanarak bir seçim seçeneği ekliyorum. Seçimde seçilen seçeneği gizleme girişine nasıl yazabilirim bilmiyorum.

.change() veya .val() mu?

Bu

eklemek kodudur seçme:

$('#calc_shipping_state_field').after("<p class='form-row form-row-wide' id='calc_shipping_state_field' id=''> <select name='' id='county_selected' class='' rel=''> <option value=''>Select a county…</option> <option value='BE'>Bedfordshire</option> <option selected='selected' value='BER'>Berkshire</option> <option value='BRI'>Bristol</option> <option value='BUCK'>Buckinghamshire</option> <option value='CA'>Cambridgeshire</option> <option value='CHES'>Cheshire</option> <option value='LN'>City of London</option> </select></p>"); 

Ben varsayılan olarak

<option selected='selected' value='BER'>Berkshire</option> 

yapmak için 'Berkshire' seçeneği selected='selected' ekledik Ve bu kullanarak denedi kodudur .change() ancak çalışmıyor.

$("#county_selected").change(function() { 
    var county = $("select :selected").county(function() { 
    var txt = $(this).text(); 
    }).get(); 
    //add it to div 
    $('input.input-text').val('county'); 
    }); 

Umarım birisi bana yardım edebilir.

Teşekkürler!

cevap

1

Seçilen seçeneği almak için find()'u kullanabilirsiniz, sonra üzerine .text() numaralı telefonu arayın. Değiştirme işlevinde, this seçime başvurur, bu nedenle yeniden seçmeye gerek yoktur.

$("#county_selected").change(function() { 
    $('input.input-text').val($(this).find('option:selected').text()); 
}); 

Yukarıdaki kod, seçim eklendikten sonra çalıştırılmalıdır. JQuery replaceWith Method kullanarak bunu yapabilirsiniz,

$(document).on('change', '#county_selected', function(){ 
    $('input.input-text').val($(this).find('option:selected').text()); 
}); 
+0

Merhaba @MrCode çok teşekkürler. işe yarıyor. Bunu daha kolay düşündüm .. – andresgl

1

Eh:: İsterseniz siz bir ebeveyn veya belgeye yetki verebilir ve onu seçin eklendikten sonra çalıştırmak zorunda değildir

$(document).ready(function() { 
    /* 
    * Make your new HTML ELEMENT 
    */ 
    var newHTMLelment = "<select name='calc_shipping_state'>"; 
     newHTMLelment += "<option value='01'>01</option>"; 
     newHTMLelment += "<option value='02'>02</option>"; 
     newHTMLelment += "</select>"; 
    /* 
    * Replace current HTML element with new one 
    */ 
    $("#calc_shipping_state").replaceWith(newHTMLelment); 

}); 
+0

Teşekkürler @hmd kodunuz da çalışıyor ama bence diğeri daha temiz. – andresgl

+0

Eh, en azından oy verebilirsiniz :) @andresgl – hmd

+1

Elbette! Tekrar çok teşekkürler! – andresgl