0

我正在使用下面的方法为表单javascript中的单元格设置值。tabular

<script type="text/javascript">
function eventListener(pThis)
{

$('input[name="f04"]').change(function(){

var that = this;
var vRow = "f10_"+pThis.id.substr(pThis.id.indexOf('_')+1);

$.post("wwv_flow.show", 
       {p_request      : "APPLICATION_PROCESS=GET_AMOUNT",
        p_flow_id      : $v("pFlowId"),
        p_flow_step_id : $v("pFlowStepId"),
        p_instance     : $v("pInstance"),
        x01            : $(this).val()
        },
        function(data){ 
              $('input[id="f10_0002"]').val(data);
        },
        "text"
      );
});

}
</script>

我需要使用 value invar vRow而不是f10_0002in $('input[id="f10_0002"]').val(data);

我试过$('input[id=vRow]').val(data);$('input[id='"'+vRow+'"']').val(data);

但不起作用。javascript 在这些情况下不起作用。但$('input[id="f10_0002"]').val(data);有效。

var vRow我怎么能为此使用价值?

4

2 回答 2

1

尝试:

$('input[id="' + vRow + '"]').val(data);
于 2013-01-23T07:00:13.970 回答
1

虽然使用选择器input[id=value]在技术上是正确的(因为 jQuery 属性选择器),但这不是必需的。主要原因是因为您按 ID 定位元素。document.getElementByIdJavascript 有一个特别快的特殊方法,当您指定按 ID 选择时,我确信 jQuery 会在内部使用 ( )。要触发按 ID 选择元素,可以使用#选择器字符串开头的字符。由于您也尝试使用变量的值,因此您可以连接"#"and vRow,例如:

$("#" + vRow).val(data);

#相当于通过 ID 匹配元素。如果您查看 jQuery 选择器页面 ( http://api.jquery.com/category/selectors ),您会看到有几个特殊字符可以帮助选择元素。正如我所说,#是用于 ID....是用于类等。因此,与其让 jQuery 解析字符串“input[id=value]”并进行大量额外处理,您可以通过简单地帮助 jQuery 更有效地完成它使用#.

于 2013-01-23T07:19:29.717 回答