本文整理汇总了C++中HTMLOptionElement::value方法的典型用法代码示例。如果您正苦于以下问题:C++ HTMLOptionElement::value方法的具体用法?C++ HTMLOptionElement::value怎么用?C++ HTMLOptionElement::value使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HTMLOptionElement
的用法示例。
在下文中一共展示了HTMLOptionElement::value方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: appendFormData
bool HTMLSelectElement::appendFormData(FormDataList& list, bool)
{
bool successful = false;
const Vector<HTMLElement*>& items = listItems();
unsigned i;
for (i = 0; i < items.size(); i++) {
if (items[i]->hasLocalName(optionTag)) {
HTMLOptionElement *option = static_cast<HTMLOptionElement*>(items[i]);
if (option->selected()) {
list.appendData(name(), option->value());
successful = true;
}
}
}
// ### this case should not happen. make sure that we select the first option
// in any case. otherwise we have no consistency with the DOM interface. FIXME!
// we return the first one if it was a combobox select
if (!successful && !m_multiple && m_size <= 1 && items.size() &&
(items[0]->hasLocalName(optionTag))) {
HTMLOptionElement *option = static_cast<HTMLOptionElement*>(items[0]);
if (option->value().isNull())
list.appendData(name(), option->text().stripWhiteSpace());
else
list.appendData(name(), option->value());
successful = true;
}
return successful;
}
示例2: isMatchingElement
template <> inline bool isMatchingElement(const HTMLCollection* htmlCollection, Element* element)
{
CollectionType type = htmlCollection->type();
if (!element->isHTMLElement() && !(type == DocAll || type == NodeChildren || type == WindowNamedItems))
return false;
switch (type) {
case DocImages:
return element->hasLocalName(imgTag);
case DocScripts:
return element->hasLocalName(scriptTag);
case DocForms:
return element->hasLocalName(formTag);
case TableTBodies:
return element->hasLocalName(tbodyTag);
case TRCells:
return element->hasLocalName(tdTag) || element->hasLocalName(thTag);
case TSectionRows:
return element->hasLocalName(trTag);
case SelectOptions:
return element->hasLocalName(optionTag);
case SelectedOptions:
return element->hasLocalName(optionTag) && toHTMLOptionElement(element)->selected();
case DataListOptions:
if (element->hasLocalName(optionTag)) {
HTMLOptionElement* option = toHTMLOptionElement(element);
if (!option->isDisabledFormControl() && !option->value().isEmpty())
return true;
}
return false;
case MapAreas:
return element->hasLocalName(areaTag);
case DocApplets:
return element->hasLocalName(appletTag) || (element->hasLocalName(objectTag) && static_cast<HTMLObjectElement*>(element)->containsJavaApplet());
case DocEmbeds:
return element->hasLocalName(embedTag);
case DocLinks:
return (element->hasLocalName(aTag) || element->hasLocalName(areaTag)) && element->fastHasAttribute(hrefAttr);
case DocAnchors:
return element->hasLocalName(aTag) && element->fastHasAttribute(nameAttr);
case DocAll:
case NodeChildren:
return true;
case DocumentNamedItems:
return static_cast<const DocumentNameCollection*>(htmlCollection)->nodeMatches(element);
case WindowNamedItems:
return static_cast<const WindowNameCollection*>(htmlCollection)->nodeMatches(element);
case FormControls:
case TableRows:
case ChildNodeListType:
case ClassNodeListType:
case NameNodeListType:
case TagNodeListType:
case HTMLTagNodeListType:
case RadioNodeListType:
case LabelsNodeListType:
ASSERT_NOT_REACHED();
}
return false;
}
示例3: jsHTMLOptionElementValue
JSValue jsHTMLOptionElementValue(ExecState* exec, JSValue slotBase, const Identifier&)
{
JSHTMLOptionElement* castedThis = static_cast<JSHTMLOptionElement*>(asObject(slotBase));
UNUSED_PARAM(exec);
HTMLOptionElement* imp = static_cast<HTMLOptionElement*>(castedThis->impl());
JSValue result = jsString(exec, imp->value());
return result;
}
示例4: isAcceptableElement
static inline bool isAcceptableElement(CollectionType type, Element* element)
{
if (!element->isHTMLElement() && !(type == DocAll || type == NodeChildren))
return false;
switch (type) {
case DocImages:
return element->hasLocalName(imgTag);
case DocScripts:
return element->hasLocalName(scriptTag);
case DocForms:
return element->hasLocalName(formTag);
case TableTBodies:
return element->hasLocalName(tbodyTag);
case TRCells:
return element->hasLocalName(tdTag) || element->hasLocalName(thTag);
case TSectionRows:
return element->hasLocalName(trTag);
case SelectOptions:
return element->hasLocalName(optionTag);
case SelectedOptions:
return element->hasLocalName(optionTag) && toHTMLOptionElement(element)->selected();
case DataListOptions:
if (element->hasLocalName(optionTag)) {
HTMLOptionElement* option = static_cast<HTMLOptionElement*>(element);
if (!option->disabled() && !option->value().isEmpty())
return true;
}
return false;
case MapAreas:
return element->hasLocalName(areaTag);
case DocApplets:
return element->hasLocalName(appletTag) || (element->hasLocalName(objectTag) && static_cast<HTMLObjectElement*>(element)->containsJavaApplet());
case DocEmbeds:
return element->hasLocalName(embedTag);
case DocObjects:
return element->hasLocalName(objectTag);
case DocLinks:
return (element->hasLocalName(aTag) || element->hasLocalName(areaTag)) && element->fastHasAttribute(hrefAttr);
case DocAnchors:
return element->hasLocalName(aTag) && element->fastHasAttribute(nameAttr);
case DocAll:
case NodeChildren:
return true;
#if ENABLE(MICRODATA)
case ItemProperties:
return element->fastHasAttribute(itempropAttr);
#endif
case FormControls:
case DocumentNamedItems:
case TableRows:
case WindowNamedItems:
case NodeListCollectionType:
ASSERT_NOT_REACHED();
}
return false;
}
示例5: updateTickMarkValues
void RangeInputType::updateTickMarkValues() {
if (!m_tickMarkValuesDirty)
return;
m_tickMarkValues.clear();
m_tickMarkValuesDirty = false;
HTMLDataListElement* dataList = element().dataList();
if (!dataList)
return;
HTMLDataListOptionsCollection* options = dataList->options();
m_tickMarkValues.reserveCapacity(options->length());
for (unsigned i = 0; i < options->length(); ++i) {
HTMLOptionElement* optionElement = options->item(i);
String optionValue = optionElement->value();
if (!this->element().isValidValue(optionValue))
continue;
m_tickMarkValues.append(parseToNumber(optionValue, Decimal::nan()));
}
m_tickMarkValues.shrinkToFit();
nonCopyingSort(m_tickMarkValues.begin(), m_tickMarkValues.end(),
decimalCompare);
}
示例6: hasPlaceholderLabelOption
bool HTMLSelectElement::hasPlaceholderLabelOption() const
{
// The select element has no placeholder label option if it has an attribute "multiple" specified or a display size of non-1.
//
// The condition "size() > 1" is actually not compliant with the HTML5 spec as of Dec 3, 2010. "size() != 1" is correct.
// Using "size() > 1" here because size() may be 0 in WebKit.
// See the discussion at https://bugs.webkit.org/show_bug.cgi?id=43887
//
// "0 size()" happens when an attribute "size" is absent or an invalid size attribute is specified.
// In this case, the display size should be assumed as the default.
// The default display size is 1 for non-multiple select elements, and 4 for multiple select elements.
//
// Finally, if size() == 0 and non-multiple, the display size can be assumed as 1.
if (multiple() || size() > 1)
return false;
int listIndex = optionToListIndex(0);
ASSERT(listIndex >= 0);
if (listIndex < 0)
return false;
HTMLOptionElement* option = static_cast<HTMLOptionElement*>(listItems()[listIndex]);
return !listIndex && option->value().isEmpty();
}
示例7: paintSliderTicks
void RenderTheme::paintSliderTicks(RenderObject* o, const PaintInfo& paintInfo, const IntRect& rect)
{
Node* node = o->node();
if (!node)
return;
HTMLInputElement* input = node->toInputElement();
if (!input)
return;
HTMLDataListElement* dataList = static_cast<HTMLDataListElement*>(input->list());
if (!dataList)
return;
double min = input->minimum();
double max = input->maximum();
ControlPart part = o->style()->appearance();
// We don't support ticks on alternate sliders like MediaVolumeSliders.
if (part != SliderHorizontalPart && part != SliderVerticalPart)
return;
bool isHorizontal = part == SliderHorizontalPart;
IntSize thumbSize;
RenderObject* thumbRenderer = input->sliderThumbElement()->renderer();
if (thumbRenderer) {
RenderStyle* thumbStyle = thumbRenderer->style();
int thumbWidth = thumbStyle->width().intValue();
int thumbHeight = thumbStyle->height().intValue();
thumbSize.setWidth(isHorizontal ? thumbWidth : thumbHeight);
thumbSize.setHeight(isHorizontal ? thumbHeight : thumbWidth);
}
IntSize tickSize = sliderTickSize();
float zoomFactor = o->style()->effectiveZoom();
FloatRect tickRect;
int tickRegionSideMargin = 0;
int tickRegionWidth = 0;
IntRect trackBounds;
RenderObject* trackRenderer = input->sliderTrackElement()->renderer();
// We can ignoring transforms because transform is handled by the graphics context.
if (trackRenderer)
trackBounds = trackRenderer->absoluteBoundingBoxRectIgnoringTransforms();
IntRect sliderBounds = o->absoluteBoundingBoxRectIgnoringTransforms();
// Make position relative to the transformed ancestor element.
trackBounds.setX(trackBounds.x() - sliderBounds.x() + rect.x());
trackBounds.setY(trackBounds.y() - sliderBounds.y() + rect.y());
if (isHorizontal) {
tickRect.setWidth(floor(tickSize.width() * zoomFactor));
tickRect.setHeight(floor(tickSize.height() * zoomFactor));
tickRect.setY(floor(rect.y() + rect.height() / 2.0 + sliderTickOffsetFromTrackCenter() * zoomFactor));
tickRegionSideMargin = trackBounds.x() + (thumbSize.width() - tickSize.width() * zoomFactor) / 2.0;
tickRegionWidth = trackBounds.width() - thumbSize.width();
} else {
tickRect.setWidth(floor(tickSize.height() * zoomFactor));
tickRect.setHeight(floor(tickSize.width() * zoomFactor));
tickRect.setX(floor(rect.x() + rect.width() / 2.0 + sliderTickOffsetFromTrackCenter() * zoomFactor));
tickRegionSideMargin = trackBounds.y() + (thumbSize.width() - tickSize.width() * zoomFactor) / 2.0;
tickRegionWidth = trackBounds.height() - thumbSize.width();
}
RefPtr<HTMLCollection> options = dataList->options();
GraphicsContextStateSaver stateSaver(*paintInfo.context);
paintInfo.context->setFillColor(o->style()->visitedDependentColor(CSSPropertyColor), ColorSpaceDeviceRGB);
for (unsigned i = 0; Node* node = options->item(i); i++) {
ASSERT(node->hasTagName(optionTag));
HTMLOptionElement* optionElement = toHTMLOptionElement(node);
String value = optionElement->value();
if (!input->isValidValue(value))
continue;
double parsedValue = parseToDoubleForNumberType(input->sanitizeValue(value));
double tickFraction = (parsedValue - min) / (max - min);
double tickRatio = isHorizontal && o->style()->isLeftToRightDirection() ? tickFraction : 1.0 - tickFraction;
double tickPosition = round(tickRegionSideMargin + tickRegionWidth * tickRatio);
if (isHorizontal)
tickRect.setX(tickPosition);
else
tickRect.setY(tickPosition);
paintInfo.context->fillRect(tickRect);
}
}
示例8: itemAfter
Element* HTMLCollection::itemAfter(Element* previous) const
{
bool deep = true;
switch (m_type) {
case DocAll:
case DocAnchors:
case DocApplets:
case DocEmbeds:
case DocForms:
case DocImages:
case DocLinks:
case DocObjects:
case DocScripts:
case DocumentNamedItems:
case MapAreas:
case OtherCollection:
case SelectOptions:
case DataListOptions:
case WindowNamedItems:
break;
case NodeChildren:
case TRCells:
case TSectionRows:
case TableTBodies:
deep = false;
break;
}
Node* current;
if (!previous)
current = m_base->firstChild();
else
current = nextNodeOrSibling(m_base.get(), previous, deep);
for (; current; current = nextNodeOrSibling(m_base.get(), current, deep)) {
if (!current->isElementNode())
continue;
Element* e = static_cast<Element*>(current);
switch (m_type) {
case DocImages:
if (e->hasLocalName(imgTag))
return e;
break;
case DocScripts:
if (e->hasLocalName(scriptTag))
return e;
break;
case DocForms:
if (e->hasLocalName(formTag))
return e;
break;
case TableTBodies:
if (e->hasLocalName(tbodyTag))
return e;
break;
case TRCells:
if (e->hasLocalName(tdTag) || e->hasLocalName(thTag))
return e;
break;
case TSectionRows:
if (e->hasLocalName(trTag))
return e;
break;
case SelectOptions:
if (e->hasLocalName(optionTag))
return e;
break;
case DataListOptions:
if (e->hasLocalName(optionTag)) {
HTMLOptionElement* option = static_cast<HTMLOptionElement*>(e);
if (!option->disabled() && !option->value().isEmpty())
return e;
}
break;
case MapAreas:
if (e->hasLocalName(areaTag))
return e;
break;
case DocApplets: // all <applet> elements and <object> elements that contain Java Applets
// weolar
__asm int 3;
// if (e->hasLocalName(appletTag))
// return e;
// if (e->hasLocalName(objectTag) && static_cast<HTMLObjectElement*>(e)->containsJavaApplet())
// return e;
break;
case DocEmbeds:
if (e->hasLocalName(embedTag))
return e;
break;
case DocObjects:
if (e->hasLocalName(objectTag))
return e;
break;
case DocLinks: // all <a> and <area> elements with a value for href
if ((e->hasLocalName(aTag) || e->hasLocalName(areaTag)) && e->fastHasAttribute(hrefAttr))
return e;
break;
case DocAnchors: // all <a> elements with a value for name
//.........这里部分代码省略.........
示例9: valueAttrGetter
static v8::Handle<v8::Value> valueAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
{
HTMLOptionElement* imp = V8HTMLOptionElement::toNative(info.Holder());
return v8String(imp->value(), info.GetIsolate());
}
示例10: valueAttrGetter
static v8::Handle<v8::Value> valueAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) {
INC_STATS("DOM.HTMLOptionElement.value._get");
HTMLOptionElement* imp = V8HTMLOptionElement::toNative(info.Holder());
return v8String(imp->value());
}