2009-09-18 3 views
1

Я довольно новичок в jQuery, и мне дали задание, которое я действительно не знаю, как закончить. Вот ситуация:Как объединить два поля формы в одну переменную с jQuery?

У меня есть форма выглядит следующим образом:

Код:

<form action="search.php" method="get" id="cse-search-box"> 
    <input type="text" name="q" size="31"/> 
    <select name="category"> 
    <option>One</option> 
    <option>Two</option> 
    <option>Three</option> 
    </select> 
    <select name="contributors"> 
    <option>One</option> 
    <option>Two</option> 
    <option>Three</option> 
    </select> 
    <input type="submit" name="sa" value="Search" /> 
</form> 

Форма используется для передачи запроса на Google поиск по сайту. Поле ввода «q» является основным поисковым запросом.

Мне нужно совместить выбор пользователя в полях 'категории' и 'contributors' с одной переменной с именем 'as_q' и вставить это в поле формы при отправке.

Заранее спасибо за любую помощь

+0

Вы можете включать в рабочий код, который вы имеете до сих пор так мы можем видеть специфику чего вы пытаетесь достичь? – JohnFx

+0

У меня нет никакого рабочего кода! Код поиска Google использует переменные q и as_q для построения поискового запроса. Если бы у меня было только одно поле для выбора, его можно было бы назвать as_q; и проблем не было бы. Но поскольку я использую два поля выбора, их нужно объединить, чтобы сделать одну строку. Код поиска сайта Google затем включается в файл search.php и извлекает условия поиска через GET. Не уверен, что это имеет смысл! Поэтому я хочу объединить два поля select в одну переменную, чтобы ее можно было использовать как строку поиска. – Gibset

ответ

1
<script> 
    $('#cse-search-box').bind('submit', function(){ 
     var category = $('[name=category]').val(); 
     var contributors = $('[name=contributors]').val(); 
     $('[name=q]').val(category+' '+contributors); 
    }); 
</script> 

этот кусок сценария после того, как <form> объявлен (это HTML, я не очень уверен, если это уместно использовать DECLARE)

0

лучший способ сделать это - добавить скрытое поле с нужным именем - as_q - и объединить любые поля, которые вы хотели бы в это поле, на форме submit.

Таким образом, вы бы добавить к вашей форме:

<input id="as_q" name="as_q" type="hidden"> 

А затем заполнить его следующим образом:

$('#cse-search-box').submit(function() { 
    $('#as_q').val($("[name='category']").val() + $("[name='contributors']").val()); 
}); 
Смежные вопросы