JQuery добавить к входному значению - PullRequest
6 голосов
/ 30 июля 2011

Это последняя проблема, с которой я столкнулся с формой (надеюсь)

Я хочу добавить var size к моему скрытому вводу под названием my-item-имя

Я пытался добавить это

form.find('[name=my-item-name]').append(size.val());

, но это не работает.

Как правильно добавить значение val к ​​входу?

<form method="post" action="" class="jcart">
    <fieldset>
        <input type="hidden" name="jcartToken" value="13823c48f896c49403465fcce9f135ac" />

        <input type="hidden" name="my-item-id" value="12" />
        <input type="hidden" name="my-item-price" value="15.99" />
        <input type="hidden" name="my-item-url" value="http://yahoo.com" />
        <input type="hidden" name="my-item-name" value="Operation Braveheart hooded sweatshirt" />
        <ul>
            <li>
                <select name="my-select" id="foo12">
                    <option value='Small'>Small</option>
                    <option value='Medium'>Medium</option>
                    <option value='Large'>Large</option>
                    <option value='X-Large'>X-Large</option>
                </select>
            </li>
            <li>Price: $<span id="price12" class="price">15.99</span></li>
            <li>
                <label>Qty: <input type="text" name="my-item-qty" value="1" size="3" /></label>

            </li>
        </ul>

        <input type="submit" name="my-add-button" value="add to cart" class="button" />
    </fieldset>
</form>                
<script type="text/javascript">
    var item_prices_by_size12 = { "Small": { "Price": "15.99", "ItemId": "9-1" },"Medium": { "Price": "16.99", "ItemId": "9-2" },"Large": { "Price": "17.99", "ItemId": "9-3" },"X-Large": { "Price": "18.99", "ItemId": "9-4" }};
    $(function() {

        $('#foo12').change(function() {

            var form = $(this).parents('form');

            // Size is whatever the value the user has selected
            var size = $(this).val();

            // Determine the correct price and item ID based on the selected size
            var price12  = item_prices_by_size12[size].Price,
            itemId = item_prices_by_size12[size].ItemId;

            form.find('#price12').text(price12);

            form.find('[name=my-item-price]').val(price12);

            // Update the item ID
            form.find('[name=my-item-id]').val(itemId);

            form.find('[name=my-item-name]').append(size.val());

        });
    });
</script>

Ответы [ 4 ]

5 голосов
/ 30 июля 2011

Если вы имеете в виду concatenate:

  $('[name=my-item-name]').val($('[name=my-item-name]').val()+""+size);

(Чтение размера вашего кода уже является значением объекта, поэтому вы не можете вызвать size.val())

5 голосов
/ 30 июля 2011

append: «Вставить содержимое, указанное параметром, в конец каждого элемента в наборе соответствующих элементов.»

Что вы хотите сделать, это добавить к значению, которое я думаю?

var value = form.find('[name=my-item-name]').val();
form.find('[name=my-item-name]').val(value + size); 
2 голосов
/ 30 июля 2011

сделай так,

var prev= $('[name=my-item-name]').val()
$('[name=my-item-name]').val(prev+" "+size);
1 голос
/ 02 июня 2014

лучшее решение для добавления значений в форму ввода:

var attachedValue = [];

//add element to attachedValue array
attachedValue.push(size.val());
$(element).val(attachedValue);

result: 6666,5555,2222   

// remove element from array;
// remove 5555 element from array
var index = attachedValue.indexOf(size.val());
if (index > -1) {
    attachedValue.splice(index, 1);
}
$(element).val(attachedValue);

result 6666,2222

your form then would look like :
<input type="hidden" value="6666,2222" name="my-item-name">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...