2 u011371270 u011371270 于 2016.03.09 16:50 提问

js this.value传递不过去

我的想实现的功能是这样的,是一个两级查询,第一级查询查询出一批商品,然后点击每一个商品序列号之后再显示明细信息。
思路是第一级查询的结果在php中while函数,在点击部分使用<a value="值"onclike="函数(this.value)">"</a>"是查出来的每一个配件都有一个函数可以用,然后返回给前台浏览器
PHP实际代码如下(部分):

 while($row=mysqli_fetch_array($result)){\
  <td>\<a href=\"#\" value=\"".$row[0]."\" id=\"".$row[0]."\" onclick=\"showleadsdetails(this.value)\">".$row[0]."\<\a>\</td>}
,我用浏览器调试工具可以看到实际生成的条款如下:
\<a href="#" value="leads-201602001" id="leads-201602001" onclick="showleadsdetails(this.value)">leads-201602001\</a>
即,我的js动作已经绑定了,元素的value也是对的,然后就是点击,调用showleadsdetails函数
function showleadsdetails(leadcodes){
    var url="getleaddetails.php";
    var leads="lead="+leadcodes;}
但是使用调试工具看的时候,一直没有参数传过来,只有leadcodes=undefined。

这是怎么回事?比较复杂的,绕了我好久,请大神麻烦解决,非常感谢,我把我所有的分数都送上了

4个回答

showbo
showbo   Ds   Rxr 2016.03.09 19:40
已采纳

value不属于a的特有属性,是自定义输入,需要用getAttribute获取,不能this.value,不好转义的话可以传递this,在函数中调用getAttribute

 "<td><a href=\"#\" value=\"".$row[0]."\" id=\"".$row[0]."\" onclick=\"showleadsdetails(this.getAttribute('value'))\">"
  onclick=\"showleadsdetails(this)\"
function showleadsdetails(a){
var leadcodes=a.getAttribute('value');/////////
    var url="getleaddetails.php";
    var leads="lead="+leadcodes;}

Royal_lr
Royal_lr   Ds   Rxr 2016.03.09 16:56

看下你是怎么绑定的,,,,

u011371270
u011371270   2016.03.09 17:09

echo<a href=\"#\" value=\"".$row[0]."\" id=\"".$row[0]."\" onclick=\"showleadsdetails(this.value)\">".$row[0]."<\a></td> 用于绑定的PHP参数
实际页面显示<a href="#" value="leads-201602001" id="leads-201602001" onclick="showleadsdetails(this.value)">leads-201602001</a>
调用的函数是showleadsdetails(this.value),传递的参数是value="leads-201602001"
但我点击那个超链接,可以调用函数showleadsdetails(leadcodes)但无法把value传递过去,显示的结果就是leadcodes=undefined.

xcdnh001
xcdnh001   2016.03.09 17:45

onclick="showleadsdetails(document.getElementById('leads-201602001').value)"
你的function 写成这样 showleadsdetails(value) 然后在函数体中直接调用value就行,value就是 实参的一个引用

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
很简单的 onblur onfocus方法示例
onblur="(this.value=='')?this.value='hello world':this.value"    onfocus="if(this.value=='hello world'){this.value='';};this.select();"/>
Javascript事件:this.value()和this.select()
1.JavaScript的this.value() this.value=''"> 当文本框获得焦点的时候,文本框内容清空   2.JavaScript的this.value() onfocus="this.select()"maxlength="10"style="width:80" > 当文本框获得焦点的时候,文本框内容全选
javascript中onclick(this)用法和onclick(this.value)用法介绍
onclick(this.value)代码详解 <html> <head> <script language="javascript"> function test(value){ if(value=='1') { alert("11111111"); }else{ alert
this.value和$(this).val()的区别
this.value是JS原生态写法 $(this).val()是JQ的写法 两个打印出来的值是一样的。 另外补充最近积累的几点: change()事件 click()事件 reset()方法重置是DOM对象的操作, empty()是DOM对象的设置为空的操作
javascript不能传递含有中文汉字的url问题
利用JavaScript通过URL方式向后台代码传值是一种经常用到的手段,但在传递汉字时经常会出现字符不全或变成乱码的问题,其原因是由于客户端IE浏览器的编码方式为GB2312(简体中文版WINDOWS的默认设置),而后台的C#代码使用utf8编码(创建WEB工程的默认配置)。  网上有很多方案解决该问题,如将web.config的编码方式改为GB2312、在客户端通过escape先编码再传,个
设置默认值;this.defaultValue
<input type="text" name="coursename_add" size="30" class="gray" value="设置的默认值" onfocus="if(this.value==defaultValue){ this.value='';this.className='black'}"
用JS语言编写计算机
本周因为要考试,所以博客写的有些迟。上周我们JS没有学习新的内容,对之前学的知识进行了总结复习。喜欢搞事情的我们做出来了一个本人感觉很有趣的东西,简易计算器。 下面是代码部分:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>计算机</title> <style type=
onclick事件传参时传中文传不过去
需要添加单引号或双引号var name = &quot;'&quot;+book.type.name+&quot;'&quot;;
js用正则进行密码强度验证
html> html lang="en"> head> meta charset="UTF-8"> title>Documenttitle> head> style type="text/css"> body { background: #ccc; } label { width: 40px; display
(java gui) 和 (网页 js) 通过url传值(如json)时,注意问题
(java gui) 和 (网页 js)  通过url传值时,如果不涉及特殊字符可以不进行编码, 但是如果有特殊字符,比如中文,及符号 就要进行编码。 java 使用 java.net.URLEncoder.encode(str, "UTF-8");编码, java 使用java.net.URLDecoder.decode(str,"UTF-8");解码, js 使用decodeU