我有一个数据表,每一行都有一组带有日期输入框(Jquery datepicker)的列,其中一列表中有一个dropdwon框值为Yes和No.当任何一个日期输入框使用值选择,然后我应该使用“是”预填充下拉列表(默认情况下为“否”)。使用onselect事件我传递日期框id,用该id我输出下拉列表ID。为日期框生成的ID为" tableId:表中的行号:dateID",因此在我的情况下,它生成为" vendorTbl:0:rskDate"。
$( ".rejct_input_date" ).datepicker({
changeMonth: true,
changeYear: true,
onSelect: function(selected,evnt) {
updateRiskIdentified(evnt);
}});
现在在updateRiskIdentifed函数中我使用日期id和i框架DDL id就像
function updateRiskIdentified(value){
var dateIdval = value.id;
dateIdval = dateIdval.substring(0, dateIdval.lastIndexOf('_')) + "_rskIdntfd";
var riskId = "#"+dateIdval+" ";
alert(riskId);
$($riskId + "option[value='1']").prop('selected', true);
}
现在我可以生成我需要的id,最后一个是给不支持的psuedo":0"。然后我更换了dateIdval = dateIdval.replace(/:/ g," \\:");逃避":"。但错误信息是"不支持psuedo" \:0"。 这是我的选择
<f:selectItem itemLabel="Yes" itemValue="Y"></f:selectItem>
<f:selectItem itemLabel="No" itemValue=""></f:selectItem>
并生成HTML:
<select name="vendorArtifacts:0:_rskIdntfd" class="af_selectOneChoice_content" id="vendorArtifacts:0:_rskIdntfd" style="width: 100%;"><option value="0">Yes</option><option value="1" selected="">No</option><option value="2">N/A</option></select>
答案 0 :(得分:1)
.replace()
电话应该有效。
您也不需要使用option[value="1"]
选择器。只需设置<select>
元素的值。
$(".button").click(function() {
updateRiskIdentified(this);
});
function updateRiskIdentified(value) {
var dateIdval = value.id;
dateIdval = dateIdval.substring(0, dateIdval.lastIndexOf('_')) + "_rskIdntfd";
dateIdval = dateIdval.replace(/\:/g, "\\:");
var riskId = "#" + dateIdval;
console.log(riskId);
$(riskId).val("1");
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="foo:bar:0_rskIdntfd">
<option value="">Default</option>
<option value="1">Choose 1</option>
<option value="2">Choose 2</option>
</select>
<button class="button" id="foo:bar:0_button">Click</button>
&#13;
答案 1 :(得分:1)
我们没有这个jquery选择器:$($value "option[value='Y']").prop('selected', true);
。
至少在$ value之后,您需要 + 作为jquery选择器。以下是一个示例:
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<select id="gate">
<option value="x">x</option>
<option value="Y">y</option>
</select>
<script>
var $value = '#gate ';
$($value + "option[value='Y']").prop('selected', true);
</script>
&#13;
不要忘记&#39; #gate&#39;。
之后的空格