ورود

View Full Version : سوال مهم در رابطه با change().



کامبیز اسدزاده
جمعه 12 خرداد 1391, 23:19 عصر
سلام دوستان


این کد زیر مثالی برای استفاده و انتخاب مقادیر از باکس و نمایش مقدار انتخاب شده در یک div میباشد...
با تغییر دادن مقدار div به p یا به دیگر مقادیر تمامی مقادیر شامل تغییر داده میشوند !

سوال من این هستش که چطوری تعریف کنم که مثلا با انتخاب آیتم مقدارش در داخل این تکس باکس نمایش داده بشه..

<form name="form1" method="post" action="">
<label for="test1">test1</label>
<input type="text" name="test1" id="test1">
</form>



<!DOCTYPE html>
<html>
<head>
<style>

div { color:red; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<select name="sweets" multiple="multiple">
<option>Chocolate</option>
<option selected="selected">Candy</option>

<option>Taffy</option>
<option selected="selected">Caramel</option>
<option>Fudge</option>
<option>Cookie</option>

</select>
<div></div>
<script>
$("select").change(function () {
var str = "";
$("select option:selected").each(function () {
str += $(this).text() + " ";
});
$("div").text(str);
})
.change();
</script>

</body>
</html>

mehdi.mousavi
شنبه 13 خرداد 1391, 15:14 عصر
سلام.
نیازی به این همه کد نیست... (حتی در حالتی که از div استفاده می کنید). وقتی select ای دارید که multiple option اون set شد، val() روی اون select به شما کلیه مقادیر select شده رو بصورت آرایه برمیگردونه، در نتیجه، کافیه تا اونها رو با هم join کنید و separator مورد نظرتون رو به join بدید (فرضا در مثال شما، جداکننده گزینه ها space در نظر گرفته شده). بنابراین، اگر فرض کنم HTML مورد نظر این باشه:

<select name="sweets" multiple="multiple">
<option>Chocolate</option>
<option selected="selected">Candy</option>
<option>Taffy</option>
<option selected="selected">Caramel</option>
<option>Fudge</option>
<option>Cookie</option>
</select>
<div></div>
<label for="test1">test1</label>
<input type="text" name="test1" id="test1">


در اینصورت، کد JavaScript رو باید بدین شکل تغییر بدید:

$('select').change(function () {
var str = $(this).val().join(' ');
$('#test1').val(str);
}).change();

ضمنا، کد رو حتما در ready handler قرار بدید تا DOM Document حتما Load شده باشه (در غیر اینصورت ممکنه به ایرادهای دیگه ای بخورید).

موفق باشید.

کامبیز اسدزاده
شنبه 13 خرداد 1391, 15:47 عصر
با تشکر , به جواب رسیدم ولی مشکلی که الان دارم رو موارد دیگه اصلا نمیدونم چطور باید استفاده کنم برای مثال یک ComboBox

<form name="form1" method="post" action="">
<label for="test1"></label>
<select name="test1" id="test1">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</form>


من هدفم از این کار این هستش که میخوام در داخل فرم ثبت سفارشم یه گزینه ای دارم به نام و مقدار زیر title :

$ml['title'][$k]=System::Select('title['.$k.']',System::Option($lang['t0']).System::Option($lang['t1']).System::Option($lang['t2']).System::Option($lang['t3']),array('tabindex'=>9));



این کدی هستش که به من مقدار رو در داخل Combo Box میده میخوام در حالت انتخاب با تکنولوژی Jquery کاری کنم که با انتخاب موارد درونی این کد موارد دیگری انتخاب بشه برای مثال :

در داخل System::Select من title رو دارم که دارای ۳ مقدار هستش....

حالا میخوام با استفاده از JQ بگم وقتی مقدار دوم title انتخاب شد مقدار انتخاب شده رو در داخل یع متغیری به نام مثلا $result بریزه و من مقدار این result رو بعد از تغییران و عملیات برای ذخیره سازی در دیتابیس بفرستم :)

من کلا با PHP کار کردم و اصلا نمیدونم JQ دقیقا چجوری باید تو این قسمتی که میخوام استفاده بشه ممنون میشم از راهنمایی :)