добавете избрана радио стойност към ключова дума за търсене при натискане на бутон

В моята страница имам две радиостанции, потребителят може да избере която и да е и да въведе своята дума за търсене в полето за въвеждане, при натискане на бутон бих искал да добавя към тяхната ключова дума за търсене стойността на избраното радио? Как да направим това в jquery или javascript ?

Така че, ако са въвели танци и са избрали „класове“, действителната предадена ключова дума за търсене ще бъде „класове по танци“

<div>
        Events<input name="EventRadio" type="radio" value="Events"/>&nbsp;
        Classes<input name="EventRadio" type="radio" value="Classes"/><br /><br />
        <input type="text" name="T1" style="width: 302px"/>
        <input type="button" value="Search" onclick="javascript:_SFSUBMIT_"/>
    </div>

person Anju Thapa    schedule 29.12.2011    source източник


Отговори (3)


Нуждаете се от още информация: искате ли допълнителната ключова дума да се показва и в текстовото поле?

Всичко, което наистина трябва да направите, е да заснемете стойността attr на радиото, ако е отметнато във вашата функция SFSUBMIT. jQuery има няколко различни конструкции за това.

person Ken    schedule 29.12.2011
comment
Просто искам да уловя и да го предам заедно с въведената от потребителя стойност на ключовата дума..не показване - person Anju Thapa; 30.12.2011
comment
Тогава просто, ако стойностите на радио бутоните винаги ще бъдат статични, присвоете им атрибут със стойността, която ще представляват. След това във вашата функция просто използвайте селектори, за да я заснемете и да я присвоите на променлива. След като е в паметта, можете да правите почти всичко с него. - person Ken; 30.12.2011

Ако разбирам въпроса, когато потребителят щракне върху бутона, добавете това, което е в текстовото поле с избрания в момента бутон за избор?

$("input[type='button']").click(function() {
    var text = $("input[name='EventRadio']:checked").val();
    if (text) {
        var $tb = $("input[name='T1']"); 
        $tb.val($tb.val() + text);
    }
});

Разбира се, това ще се задейства за всички бутони - естествено можете да добавите идентификатор към този конкретен бутон и да стесните селектора

$("#buttonId").click(function() {
person Adam Rackis    schedule 29.12.2011

$('input[type="button"]').on('click', function () {
    var $this     = $(this),
        concocted = $this.prev().val() + ' ' + $this.prevAll('[type="radio"]:checked').val();

    //you can now do what you want with the `concocted` variable, which is in the format "{text-input} {radio input}"
});

Ето демонстрация: http://jsfiddle.net/LAuZW/

Обърнете внимание, че този код ще работи, ако имате повече от един набор от входове, тъй като всички селектори са базирани на this, което е входът на щракнатия бутон.

Също така имайте предвид, че .on() е ново в jQuery 1.7 и в този случай на употреба е същото като .bind().

person Jasper    schedule 29.12.2011