我知道这个问题在其他几个方面已被问过很多次,但没有一个对我有帮助。所以,我用自己的语言对其进行了格式化。
我有一个像这样的选择框:
<select name="something">
<option value="1"><?php echo $value1; ?> for <?php echo $value2; ?>
</select>
<input type="text" name="sometext" value="">
我希望在更改选择框选项时更新文本字段中的<?php echo $value1; ?>
。为了清楚起见,我不希望文本字段中有value="1"
,我需要在那里value="1"
出于某种原因,我不能用value="<?php echo $value1; ?>"
替换它。我严格要求在文本字段中替换内部值<?php echo $value1; ?>
。但我不知道如何实现它。请高手帮帮我。对于实时更改jQuery首选。
答案 0 :(得分:2)
尝试以下代码:
<select name="something">
<option value="1" data="<?php echo $value1; ?>"><?php echo $value1; ?> for <?php echo $value2; ?></option>
</select>
<input type="text" name="sometext" value="">
请参阅以下工作 HTML
jQuery(document).ready(function($){
$('#something').change(function(){
$('#sometext').val($(this).find(':selected').attr('data'));
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="something" id="something">
<option value="1" data="value1">value1 form value01</option>
<option value="1" data="value2">value2 form value02</option>
<option value="1" data="value3">value3 form value03</option>
<option value="1" data="value4">value4 form value04</option>
</select>
<input type="text" name="sometext" id="sometext" value="">
&#13;
答案 1 :(得分:0)
您需要获取所选的选项文本而不是通常的选项值,这很容易。
您无需添加任何数据属性即可实现此目的,因为有一种方法可以获取实际的选项文本。
这是一个有效的例子:
PHP用于填充选择元素(下面我显示静态HTML)
<select id="something" name="something">
<?php foreach($selectList as $value=>$text){ ?>
<option value="<?php echo $value;?>"> <?php echo $text;?> </option>
<?php } ?>
</select>
<强> HTML 强>
<select id="something" name="something">
<option value="1"> Value 1 </option>
<option value="2"> Value 2 </option>
<option value="3"> Value 3 </option>
</select>
<input type="text" id="sometext" name="sometext" value=""/>
<强>的jQuery 强>
$(document).ready(function(){
$('#something').on('change',function(){
var selectedText = $(this).children(':selected').text();
$('#sometext').val(selectedText);
});
});
这种方法快速且易于维护。
当然还有一个可以看到它的动作:https://jsfiddle.net/kzgapkt5
希望它有所帮助
答案 2 :(得分:0)
希望这对你有用,
$(document).ready(function() {
$('select').change(function(){
var selectedOption = $("select option:selected").text(); //Get the text
selectedOption = selectedOption.split("for"); //split the 2 value by using for
alert(selectedOption[0]); //Get the value before for
$('input').val(selectedOption[0]);
});
});